在我的情况下,我在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;
这是我的结果:
这表明在绿色框中未绘制某些顶点和与其相连的线。
我想知道是否还有其他优雅安全的方法。
答案 0 :(得分:1)
您可以在称为“几何着色器”的阶段中修改顶点流,在顶点着色器中,您只能修改提供给片段着色器的内插器的值
答案 1 :(得分:0)
根据opengl规范:
类似地,诸如除以0之类的条件的处理可能会导致 不确定的结果,但在任何情况下都不应导致这种情况 中断或终止处理。
您不能在顶点着色器中丢弃顶点,顶点仍在此处。