丢弃Unity的顶点着色器中的顶点

时间:2019-01-04 07:30:14

标签: unity3d shader vertex-shader

在我的情况下,我在Unity中有一个网格,我想放弃顶点着色器中的一些顶点。 “放弃顶点”表示既不会绘制顶点,也不会绘制与其相连的线。

我偶然地实现了它,但是我认为这不是一种优雅或安全的方法。我的方法是将头寸的y部分设置为无效数字,即1.0 / 0

这是我的代码的一部分:

    // count may be 0, but no crash, and the point will not be drawn, seems all good.
    sum /= count;
    pos.y = sum;
    o.pos = UnityObjectToClipPos(pos);
    return o;

这是我的结果:

my result

这表明在绿色框中未绘制某些顶点和与其相连的线。

我想知道是否还有其他优雅安全的方法。

2 个答案:

答案 0 :(得分:1)

您可以在称为“几何着色器”的阶段中修改顶点流,在顶点着色器中,您只能修改提供给片段着色器的内插器的值

答案 1 :(得分:0)

根据opengl规范:

  

类似地,诸如除以0之类的条件的处理可能会导致   不确定的结果,但在任何情况下都不应导致这种情况   中断或终止处理。

您不能在顶点着色器中丢弃顶点,顶点仍在此处。