Webgl 使用多个着色器文件中的gl_FragData[]
我用一些着色器设置了webgl着色器。我正在使用多个渲染目标(gl_FragData[]) 在第一个着色器中,我可以输出到Webgl 使用多个着色器文件中的gl_FragData[],webgl,webgl-extensions,deferred-shading,Webgl,Webgl Extensions,Deferred Shading,我用一些着色器设置了webgl着色器。我正在使用多个渲染目标(gl_FragData[]) 在第一个着色器中,我可以输出到 gl_FragData[0] = vec4(..); gl_FragData[1] = vec4(..); gl_FragData[2] = vec4(..); 现在使用第二个着色器,我想输出到gl_FragData[3],并保存纹理以传递到第三个着色器 第二个着色器似乎没有输出到gl_FragData[3],但是如果我在第一个着色器中使用它,这会起作用。我希望gl_Fr
gl_FragData[0] = vec4(..);
gl_FragData[1] = vec4(..);
gl_FragData[2] = vec4(..);
现在使用第二个着色器,我想输出到gl_FragData[3],并保存纹理以传递到第三个着色器
第二个着色器似乎没有输出到gl_FragData[3],但是如果我在第一个着色器中使用它,这会起作用。我希望gl_FragData[3]的输出存储在纹理中,并发送到第三个着色器
我认为这可能与帧缓冲区有关,但我尝试过改变它,但没有成功。我缺少什么?如果要使用相同的帧缓冲区,则需要屏蔽未使用的绘制缓冲区:
drawBuffers([COLOR\u ATTACHMENT0,COLOR\u ATTACHMENT1,COLOR\u ATTACHMENT2])
用于第一个着色器,而drawBuffers([NONE,NONE,COLOR\u ATTACHMENT3])
用于第二个着色器
发件人:
未定义与片段着色器未写入的片段关联的任何颜色或颜色组件
为什么不制作两个帧缓冲区呢。一个有3个附件,一个有1个附件,输出到第二个着色器中的gl_FragData[0]