【发布时间】:2018-06-16 23:32:45
【问题描述】:
我听说在 OpenGL 中,将纹理数据格式从 GL_RGBA 更改为 GL_BGRA 可以显着提高像素传输性能。现在有两种方法可以调整纹理数据以适应这种格式:
一种是修改片段着色器,所以不要使用FragColor = texture(...),而是使用
vec4 t = texture(...);
FragColor = vec4(t.b,t.g,t.r,t.a);
不过红皮书介绍了另一种方法,就是设置参数GL_TEXTURE_SWIZZLE_RGBA。
在我的小型测试程序中,两种方法都有效。但是其中哪一个提供更好的性能?我观察到可以在上传数据后设置参数。那么第二种方法是否等同于第一种方法,由驱动程序隐式完成?
【问题讨论】:
标签: opengl