GLSL可以同时输出两个/多个纹理吗?
我可以得到一个着色器来读取两个纹理,但是对于输出来说,似乎只有gl_FragColor。 有没有办法从一个着色器渲染两个不同的纹理? 我正在使用Processing和GLGraphics库btw。
是的,你可以写gl_FragData,这是一个输出数组(大小取决于你的实现)。 或与GL的新版本,既gl_FragColor和gl_FragData已过时,您声明自己out
变量片段着色器写入。 声明多个这样out
瓦尔用于多个输出缓冲器。
我不知道这是否正是你想要做的,但是利用帧缓冲区对象(FBOs),你可以同时绘制多个颜色缓冲区。
然而,在着色器中,它仍然会像您正在编写一个片段一样。 也就是说,着色器不知道FBO有多少个附件。
是。 我们可以。 但请注意,GLSL 4.0不再支持gl_FragData。 指定位置为:
glBindFragDataLocation(programHandle, 0, "FragColor");
.....
我希望你能阅读glsl 4.0着色语言食谱的书。
链接地址: http://www.djcxy.com/p/48859.html上一篇: Can GLSL output to two/multiple textures at the same time?