我有一个顶点着色器,其属性可以在任何给定的帧中设置,也可以不设置.如何检查这些属性是否已设置?
我想做什么:
attribute vec3 position;
attribute vec3 normal;
attribute vec4 color;
attribute vec2 textureCoord;
uniform mat4 perspective;
uniform mat4 modelview;
uniform mat4 camera;
uniform sampler2D textureSampler;
varying lowp vec4 vColor;
void main() {
gl_Position = perspective * camera * modelview * vec4(position, 1.0);
if ((bool)textureCoord) { // syntax error
vColor = texture2D(textureSampler, textureCoord);
} else {
vColor = (bool)color ? color : vec4((normal.xyz + 1.0)/2.0 , 1.0);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个顶点着色器,其属性可以在任何给定的帧中设置,也可以不设置.
不,你没有.:)
使用属性,属性不可能"设置".每个顶点着色器实例都从每个声明的属性接收有效值.
如果未启用属性数组glEnableVertexArray,则将glVertexAttrib传递默认属性(由其默认值指定).
在您的情况下,您可以:
选一个.
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |