gpt4 book ai didi

java - 3d 矩形在负 z 方向切换可见边?

转载 作者:行者123 更新时间:2023-12-01 09:55:23 24 4
gpt4 key购买 nike

我正在使用以下代码处理顶点和法线:

    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));

这给了我预期的结果:

enter image description here

现在我进入了负 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));

enter image description here

现在矩形突然不可见了。由于未知的原因,它从另一侧可见,似乎“可见”侧在转向负 z 时已切换。

enter image description here

如何使矩形在进入负 z 时可见?

最佳答案

这称为背面剔除。顶点的顺序(逆时针)用于确定面的哪一侧是正面,哪一侧是背面。默认情况下不渲染(剔除)背面,因此 GPU 不必渲染无论如何都不可见的东西。

MeshPartBuilder#rect 方法允许您在查看矩形正面时指定角点。 Corner00 为左下角,corner10 为右下角,corner11 为右上角,corner01 为左上角。

透视投影默认使用右手系统。意味着 Z 轴指向观察者。因此,您实际上必须交换水平角才能使其从另一侧可见。或者,如果您愿意,也可以交换垂直角。

关于java - 3d 矩形在负 z 方向切换可见边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com