在obj文件中翻转脸

Flip face in obj file

我正在动态创建 3D 模型并编写 .obj 文件。我在翻转面部的可见侧时遇到问题。

我举了一个简单的例子:

v  0.0  0.0  0.0
v  0.0  1.0  0.0
v  1.0  0.0  0.0
v  1.0  1.0  0.0

vn  0.0  0.0 -1.0

f  1//1  4//1  3//1
f  1//1  2//1  4//1

上面是一个正方形分成两个三角形。 vn 线是面法线(垂直于面的矢量)。我在网上看到要翻转脸,可以取反法向量。但是,如果我将法向量乘以 -1 并尝试以下操作...

v  0.0  0.0  0.0
v  0.0  1.0  0.0
v  1.0  0.0  0.0
v  1.0  1.0  0.0

vn  0.0  0.0 1.0

f  1//1  4//1  3//1
f  1//1  2//1  4//1

当我将它导入到 Unity 中时,它实际上并没有翻转面部的可见侧。灯光稍微变了一点,但还是看得见同一面,看不到另一面。

当我绕到对面时:

法线只影响光照效果。要翻转一个面,您需要反转三角形的索引顺序,如下所示。

f  3//1  4//1  1//1
f  4//1  2//1  1//1