Ein*_*rus 13 opengl shader glsl vertex fragment-shader
我一直在用OpenGL编写程序.最近,我开始学习OpenGL着色语言.我是新手; 所以请详细说明你的答案.
我的问题是:
我只熟悉从"顶点着色器"传递到"片段着色器"以在顶点之间进行插值的"变化"变量.除此之外,我什么都不知道.
Nic*_*vre 21
在OpenGL 3+中:
varying
已弃用const
是为了......好吧,常数!uniform
用于每次调用(最多)值in
用于来自前一个流水线阶段的输入,即每个原语的每个顶点(或每个片段)值,如果使用glAttribDivisor和硬件实例out
用于输出到下一阶段关于片段着色器的输出:在OpenGL3及更高版本中,片段着色器输出的大多数内置变量(例如gl_FragColor
,有明显的例外gl_FragDepth
)都已弃用,应该用用户定义的out
变量替换.
如果输出到默认帧缓冲区,则无论您声明为片段着色器的输出,都会在颜色缓冲区中结束.如果您使用多个颜色缓冲区(即多个渲染目标)绑定了一个FBO,则需要手动将每个out
变量绑定到正确的颜色缓冲区索引glBindFragDataLocationIndexed
.
您可以找到有关GLSL("服务器")方和OpenGL("客户端")方面的所有详细信息: