丢弃着色器中的特定面

时间:2019-09-10 03:28:44

标签: glsl

我正在尝试使用discard关键字隐藏特定的面孔(假设面孔0)。

顶点着色器:

uniform float v_triangleId;
varying vec3 normal;

void main() {
   v_triangleId = floor(gl_VertexID / 3.0);

   normal = normalize(gl_NormalMatrix * gl_Normal);
   gl_Position = ftransform();
}

像素着色器:

uniform float v_triangleId;

void main(void)
{   
    float diff = abs(v_triangleId - 0); // I just want to hide face 0
    if (diff < 0.01) {
        discard;
    }
}

但是,在这种情况下,所有面孔都是隐藏的,而不仅仅是一个面孔。我想知道哪里出了问题。

0 个答案:

没有答案