Jay*_*esh 9 shader opengl-es glsl
从我在网络上看到的几个例子中,假设gl_FragData [0]是一个颜色缓冲区.我试图在gl_FragData中找到每个索引的含义,并从OpenGL着色语言书(橙皮书)中看到了这段经文
gl_FragData是一个数组,可以为其分配写入一个或多个屏幕外缓冲区的值.此数组的大小取决于实现,可以使用符号常量GL_MAX_DRAW_BUFFERS的glGet进行查询.使用glDrawBuffers指定由于将值写入片段着色器中的gl_FragData而修改的屏幕外缓冲区.写入gl_FragData [0]的值更新glDrawBuffers调用中指定的列表中的第一个缓冲区,写入gl_FragData [1]的值更新列表中的第二个缓冲区,依此类推.
没有指定gl_FragData的第0个值总是颜色缓冲区.如果有这样的规格,我在哪里可以找到它?如果没有,写入gl_FragData时的常规做法是什么?
它本身不一定是颜色缓冲区.但如果它不是一个颜色缓冲区,那就没什么了.
所述gl_FragData
输出阵列是指由设置的值glDrawBuffers
.使用FBO时,传递给此函数的值只能是GL_COLOR_ATTACHMENTn
或GL_NONE
.其中,如名称所示,是颜色缓冲区.
所以它可以是颜色缓冲区,也可以是颜色缓冲区GL_NONE
.
对于不提供的GL ES实现glDrawBuffers
(即,不实现NV_draw_buffers),它被定义为索引零被设置为GL_COLOR_ATTACHMENT0
.
ES 2.0的愚蠢之处是允许多个附件的可能性,而不实际提供一种方法来呈现给多个附件......
归档时间: |
|
查看次数: |
6390 次 |
最近记录: |