gpt4 book ai didi

opengl-es - gl_FragData[0] 总是颜色缓冲区吗?

转载 作者:行者123 更新时间:2023-12-02 21:42:59 26 4
gpt4 key购买 nike

从我在网上看到的几个例子来看,gl_FragData[0] 被假定为一个颜色缓冲区。我试图找到gl_FragData中每个索引的含义,并从OpenGL Shading language book(橙皮书)中发现了这段文字

gl_FragData is an array that can be assigned values that are written into one or more offscreen buffers. The size of this array is implementation dependent and can be queried with glGet with the symbolic constant GL_MAX_DRAW_BUFFERS. The offscreen buffers that are modified as a result of writing values into gl_FragData within a fragment shader are specified with glDrawBuffers. The value written into gl_FragData[0] updates the first buffer in the list specified in the call to glDrawBuffers, the value written into gl_FragData[1] updates the second buffer in the list, and so on.

没有指定gl_FragData的第0个值始终是颜色缓冲区。如果有这样的规范,哪里可以找到呢?如果不是,写入 gl_FragData 时的正常做法是什么?

最佳答案

它本身不一定是颜色缓冲区。但如果它不是颜色缓冲区,那么它就什么都不是。

gl_FragData 输出数组引用 glDrawBuffers 设置的值。使用 FBO 时,传递给此函数的值只能是 GL_COLOR_ATTACHMENTnGL_NONE。正如其名称所示,它们是颜色缓冲区。

所以它要么是颜色缓冲区,要么是GL_NONE

对于不提供 glDrawBuffers 的 GL ES 实现(即不实现 NV_draw_buffers ),它被定义为索引零设置为 GL_COLOR_ATTACHMENT0.

ES 2.0 允许多个附件的可能性,但实际上没有提供一种渲染到多个附件的方法,这是愚蠢的......

关于opengl-es - gl_FragData[0] 总是颜色缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com