修改opengl着色器构建器中的统一值

时间:2014-05-10 04:18:38

标签: opengl opengl-es glsl shader

我正在使用苹果公司的opengl着色器构建器来学习GLSL。

我遇到的问题是我不明白如何修改我在frag着色器中定义的制服。

enter image description here

正如你所看到的,我有一个名为" someValue"类型为GL_INT。

在符号视图中,它显示了我填写的三个空白字段。

我定义的变量是GL_INT类型,所以我应该使用哪个空白,为什么有3个空白字段?

对于制服" tex":

enter image description here

说我在插槽0~2中有3个纹理。

我应该填写3个空白字段以更改我想要使用的纹理? (我尝试了一些组合,似乎只有第二个空白才能完成工作 - 例如,为GL_TEXTURE1填写1)

1 个答案:

答案 0 :(得分:0)

在"修改统一变量"本文的一部分:https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/OpenGLShaderBuilderUserGuide/Tasks/Tasks.html

在底部的部分中,显示的控件是您在顶部选择的uniform

某些Uniform个变量有多个值(例如,vec3vec3.r vec3.g vec3.b(也可以引用为{{ 1}})),x,y,z变量中的每个值都有一个单独的控制器。

现在,Apple希望您稍微使用着色器,因此他们已经为您提供了为制服中的每个值写入三个潜在数字的能力。这个想法是你输入一些数字,然后使用下面的滑块来"变形"在这些数字之间,然后看看你的着色器内部会发生什么。

对于纹理,您可能希望将所有三个字段都设置为相同的值。