0
A
回答
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(不知道这些链接是如何持续的,抱歉)
相关问题
- 1. 将浮点颜色通道(R,G,B)转换为字节值
- 2. 将YCrCb图像分割为其强度通道
- 3. 将RGB uint分解为其单独的R G B分量
- 4. 将r,g,b值转换为一个像素值
- 5. 将图像分割为像素div
- 6. 从图像中获取r,g,b像素
- 7. 如何将R,G和B通道分别双重排列并使用Android位图处理它
- 8. 得到一个图片的每个通道(R,G,B)的平均灰度[MATLAB]
- 9. 周期R,G,B值为HUE?
- 10. 将图像分割成多张图像
- 11. 如何在MATLAB中将16位R G B值转换为8位R G B值?
- 12. 将拜耳图像分离为彩色通道C++
- 13. Bhattacharya R,G,B之间的距离Y Cb两个图像的Cr分量
- 14. 如何使用r,g,b,矩阵将调整“曲线”应用于图像?
- 15. 如何打印R,G和B矩阵
- 16. 如何将单个电位器值转换为R,G,B?
- 17. 图像分割
- 18. 肝脏的Matlab图像分割
- 19. 如何在许多图像中分割图像?在R
- 20. 生成G代码|将b样条分解为圆形部分
- 21. 分割的字符串(R1)为char B = 'R' 和int a = 1时
- 22. 通过输入R,G,B值更改文本背景颜色
- 23. 图像分割(MATLAB)
- 24. r分割的列分成多个列通过图案
- 25. 动态分割图像
- 26. 通过颜色获得R,G,B的值
- 27. 如何将图像分割为十六进制代码像素?
- 28. C#颜色常数R,G,B值
- 29. c#将图像分割成小块
- 30. 如何在Java中将Wav文件分割为多个通道?
嘿萨雷恩,字符具有动画,当他去世。我希望能够在动画死亡的同时不断做出效果。首先渲染到中间缓冲区仍然很有效吗?或者只有当我拥有角色的常量精灵时才是最好的。 – BigRed 2013-04-05 16:35:26
我不知道,对不起。在很多情况下,不需要缓冲区。 – Sarien 2013-04-05 16:53:02