我使用以下代码玩顶点和法线:
float col = 0;
float row = 0;
float level = 1;
private Vector3 tmp(float x, float y, float z) {
return new Vector3(x, y, z);
}
meshPartBuilder.rect(tmp(col, 0, row +1),
tmp(col, level, row +1),
tmp(col, level, row),
tmp(col, 0, row), new Vector3(-1, 0, 0));
这给了我预期的结果:
现在我进入负z区:
meshPartBuilder.rect(tmp(col, 0, row - 1),
tmp(col, level, row - 1),
tmp(col, level, row),
tmp(col, 0, row), new Vector3(-1, 0, 0));
现在突然间矩形变得不可见了。由于不明原因,从另一方面可以看出,它似乎是可见的"当转到负面z时,一边已经切换。
当进入负z时,如何使矩形可见?
答案 0 :(得分:1)
这称为背面剔除。顶点的顺序(逆时针方向)用于确定面的哪一侧是前方,哪一侧是后侧。默认情况下,背面不会被渲染(剔除),因此GPU无需渲染无论如何都不可见的东西。
MeshPartBuilder#rect
方法允许您在查看矩形的正面时指定角。 Corner00是左下角,corner10是右下角,corner11是右上角,corner01是左上角。
透视投影默认使用右手系统。意味着Z轴指向观察者。因此,您几乎必须交换水平角,以使其从另一侧可见。或者,如果您愿意,可以交换垂直角落。