2013-04-05 69 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