2013-04-05 74 views

回答

1

在查看片段着色器中的各個顏色時,您可以添加不同的偏移量。爲了提高效率,你應該先渲染一箇中間緩衝區。

這裏是如何做到這一點的例子:基本上原始着色器現在被稱爲

vec4 mainOld(vec2 offset) { 

    ... (gl_FragCoord.xy + offset) ... 
} 

void main(void) { 
    vec4 foo; 
    foo.r = mainOld(vec2(-3.0, 0.0)).r; 
    foo.g = mainOld(vec2(0.0, 5.0)).g; 
    foo.b = mainOld(vec2(0.0, 0.0)).b; 
    foo.a = mainOld(vec2(0.0, 0.0)).a; 
    gl_FragColor = foo; 
} 

三次,所以這是一個有點低效率的,這就是爲什麼我建議一個緩衝區,但可能是不成熟的優化。

你可以看一下上面的代碼的結果在這裏實際着色器: http://glsl.heroku.com/e#7971.0(不知道這些鏈接是如何持續的,抱歉)

+0

嘿薩雷恩,字符具有動畫,當他去世。我希望能夠在動畫死亡的同時不斷做出效果。首先渲染到中間緩衝區仍然很有效嗎?或者只有當我擁有角色的常量精靈時纔是最好的。 – BigRed 2013-04-05 16:35:26

+0

我不知道,對不起。在很多情況下,不需要緩衝區。 – Sarien 2013-04-05 16:53:02