|
|
发表于 2006-7-5 12:01:00
|
显示全部楼层
Re:问一个texture blur的问题
我有一好办法,不用SHADER,可以实现 N X N 的BLUR( N X N 平均值).
比如纹理 1024X768大小,想做 2X2 BLUR.
1.渲染这个纹理到一个中间RENDER TARGET( 1024 X768 ), 颜色为原纹理的 1/4,可以通过MUDULATE一个CONST实现.
2.设置纹理1,2,3,4单元为这张中间TARGET,设置TEXUTRE MATRIX使其分别偏移一个纹理元素,U方向为 1/1024, V为 1/768,采样为POINT,方式为ADD,这样就得到周围4像素平均值.
上边的渲染都是一个全屏QUAD,以驱动每个像素做下面的STAGE合成操作.
3X3的或者更大的KERNEL可以通过多个中间RT实现,不是均值的也能通过更多RT实现,其实就是把SHADER拆成一步或多步中间RT实现.
其实还可以利用一个性质,就是BI-LINEAR插值,采样到纹理元素边缘位置可以实现一个2X2的均值.
就是说完全可以设计一个渲染过程,实现一个任意的BLUR.而且不会慢. |
|