小编bru*_*nom的帖子

GLSL 2.0颜色和纹理

嗨,我是GLSL的新手,我遇到了一些问题.

我正在尝试创建一对GLSL着色器,要么使用颜色或纹理,但我必须做错事.问题是如果将uUseTexture设置为0(应该指示颜色),它就不起作用(对象没有着色).我知道着色代码单独工作,任何提示为什么它使用if语句不起作用?

这是代码:

//片段

precision mediump float;

uniform int uUseTexture;
uniform sampler2D uSampler;

varying vec4 vColor;
varying vec2 vTextureCoord;

void main(void) {

    if(uUseTexture == 1) {
        gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
    } else {
        gl_FragColor = vColor;
    }

}
Run Code Online (Sandbox Code Playgroud)

//顶点

attribute vec3 aVertexPosition;
attribute vec4 aVertexColor;
attribute vec2 aTextureCoord;

uniform int uUseTexture;
uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;

varying vec4 vColor;
varying vec2 vTextureCoord;

void main(void) {
    gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);

    if(uUseTexture == 1) {
        vTextureCoord …
Run Code Online (Sandbox Code Playgroud)

glsl webgl

3
推荐指数
1
解决办法
3126
查看次数

标签 统计

glsl ×1

webgl ×1