2

简单的问题,为什么目标文件包含法线,你可以计算法线对吗?

如果我是正确的,我只需要取向量 point1-point2 和 point1-point3 之间的叉积,这样可以节省我从文件中读取它们的时间。

编辑:

更具体地说,这是我找到的一个文件,我想使用它:

g cube

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

vn  0.0  0.0  1.0
vn  0.0  0.0 -1.0
vn  0.0  1.0  0.0
vn  0.0 -1.0  0.0
vn  1.0  0.0  0.0
vn -1.0  0.0  0.0

f  1//2  7//2  5//2
f  1//2  3//2  7//2 
f  1//6  4//6  3//6 
f  1//6  2//6  4//6 
f  3//3  8//3  7//3 
f  3//3  4//3  8//3 
f  5//5  7//5  8//5 
f  5//5  8//5  6//5 
f  1//4  5//4  6//4 
f  1//4  6//4  2//4 
f  2//1  6//1  8//1 
f  2//1  8//1  4//1 

编辑2:

因为人们抱怨: http ://en.wikipedia.org/wiki/Wavefront_.obj_file

4

1 回答 1

3

您可以计算法线,但计算它们需要时间。当您有很多网格并且必须以 60 fps(或更高)的速度进行渲染时,将预先计算的法线加载到 GPU 中的性能会更高。也是向量point1-point2和point1-point3之间的叉积,只是给出了面部法线。要获得 Goraud 着色所需的每个顶点法线,您必须平均每个顶点的面法线。所以你可以看到计算变得更深了。

于 2013-05-12T00:50:51.650 回答