关于creator实现优化后的高斯模糊逻辑问题

研究了一天,终于实现了采取将高斯核分为行列各一次卷积的方式来做高斯核计算的优化。

但现在有这么一个情况,因为creator好像不支持将前一个片源着色器的输出直接作为下一次片元着色器的纹理输入,所以采用了网上提供的一种截屏的方式来实现。但这么做的坏处意味着,我们需要对目标的纹理产生了2次drawcall。

据说unity那边有好办法,但creator这边似乎还不支持。

那我想了解一下,对于一个1280*720规格的纹理,以及同等大小的屏幕进行一次上述方式的高斯模糊和只用一般方式走一个二层循环直接在一个着色器里实现的高斯模糊,哪个效率会高一点呢?

没有明白 2种方式的意思

例如我要做一个7X7的高斯模糊,简单的方式就是修改着色器,一个点进行77次采样然后进行卷积。
而优化方式就是先用一次1x7的卷积,得到一个中间纹理,然后再进行一次7
1的卷积得到最后的结果。

所以需要比较一次n^2的着色器draw,和2次n的着色器的draw,哪个效率更高。

或者换个问题,着色器里的循环次数要达到什么数量级,可以抵得上一次draw的调用开销。

个人认n^2 比 2次n好, 别忘了, 分两次n的处理, 中间还有上下文之的额外开销, 怎麽算都没有一次过好

总觉得不能一概而论。
毕竟对一个20481536的图进行高斯模糊,与一个640360的图进行高斯模糊的运算量是完全不同的。
对于GPU来说几百万次浮点数加法乘法啥的可能跟没有一样。但以2048*1536这种级别的图来看,需要1.5亿次操作。使用优化后,可以少进行大约一亿次。
这个一亿次运算的开销比调用一次draw的开销还要大吗?

纯讨论,因为我确实到现在都不太清楚GPU的运算速度,与调用draw的时间开销都是怎么一个水平。
毕竟大多数地方也只会告诉你,gpu运算很快,draw会相对很耗时间。有多快,draw有多耗费时间没找到有量化的文章。

直接用像素偏移下,截帧叠加,效果比卷积的高斯要好很多,性能也比高斯好

能具体说一下嘛,或者给一下片元着色器的采样那块儿的写法