禁用opengl es纹理ios

禁用opengl es纹理ios,ios,opengl-es,Ios,Opengl Es,如何在渲染函数中临时禁用opengl es 2.x for ios上的纹理? 我正在实现颜色选择 我没有使用glkit。我正在使用着色器,因此glDisable(GL\u TEXTURE\u 2D)不起作用,glBindTexture(GL\u TEXTURE\u 2D,0)也不起作用,这取决于您想要实现什么。如果禁用纹理,您希望渲染中有什么 如果着色器基于纹理采样计算片段的颜色,如果未绑定任何纹理,它应该使用什么来代替纹理?颜色 我看到两种选择: A-使用2个着色器,一个支持纹理,一个使用固定

如何在渲染函数中临时禁用opengl es 2.x for ios上的纹理? 我正在实现颜色选择


我没有使用glkit。我正在使用着色器,因此
glDisable(GL\u TEXTURE\u 2D)
不起作用,glBindTexture(GL\u TEXTURE\u 2D,0)

也不起作用,这取决于您想要实现什么。如果禁用纹理,您希望渲染中有什么

如果着色器基于纹理采样计算片段的颜色,如果未绑定任何纹理,它应该使用什么来代替纹理?颜色

我看到两种选择:

A-使用2个着色器,一个支持纹理,一个使用固定颜色(或顶点颜色,如果加载属性)

B-使用单个着色器并使用制服引导渲染(纹理或颜色)

选项B提供了更高的性能

编辑至关于如何执行的第一个问题:

if (Texture == 0) {
    gl_FragColor = vec4(1.0,0.0,0.0,0.0);  //red color
} else{
    gl_FragColor = texture2D(Texture, TexCoordOut);
}

这取决于你想要实现什么。如果禁用纹理,您希望渲染中有什么

如果着色器基于纹理采样计算片段的颜色,如果未绑定任何纹理,它应该使用什么来代替纹理?颜色

我看到两种选择:

A-使用2个着色器,一个支持纹理,一个使用固定颜色(或顶点颜色,如果加载属性)

B-使用单个着色器并使用制服引导渲染(纹理或颜色)

选项B提供了更高的性能

编辑至关于如何执行的第一个问题:

if (Texture == 0) {
    gl_FragColor = vec4(1.0,0.0,0.0,0.0);  //red color
} else{
    gl_FragColor = texture2D(Texture, TexCoordOut);
}

我怎么做B?这是我的着色器:
gl_FragColor=texture2D(纹理,TexCoordOut)并在我的渲染函数中执行以下操作:
glUniform1i(glGetUniformLocation(programHandle,“纹理”),0一个简单的解决方案可以是:if(Texture==0){gl_FragColor=vec4(1.0,0.0,0.0,0.0);//红色}否则{gl_FragColor=texture2D(Texture,TexCoordOut);}对于纹理等于0的着色器,您要传递什么?我通过在着色器中使用另一个名为UseTexture的int来计算出来,但您的示例似乎建议您可以在if语句中使用sampler2D纹理。对吗?我该怎么做?这是我的着色器:
gl_FragColor=texture2D(纹理,TexCoordOut)并在我的渲染函数中执行以下操作:
glUniform1i(glGetUniformLocation(programHandle,“纹理”),0一个简单的解决方案可以是:if(Texture==0){gl_FragColor=vec4(1.0,0.0,0.0,0.0);//红色}否则{gl_FragColor=texture2D(Texture,TexCoordOut);}对于纹理等于0的着色器,您要传递什么?我通过在着色器中使用另一个名为UseTexture的int来计算出来,但您的示例似乎建议您可以在if语句中使用sampler2D纹理。对吗?