我需要计算准备传递给opengl链的三角形的法向量。它具有以逆时针顺序枚举的顶点,这是opengl的默认值。我们将它们表示为A
,B
,C
,并将C-B
设为u
,将B-A
设为v
。
我应该以什么顺序交叉产品向量以获得与内部opengl程序计算的法线的正常向量? v × u
或u × v
?
我发现很多关于面部剔除和顶点排序的主题,但不是关于三角形的计算法线,它取决于顶点顺序以及坐标系方向。
答案 0 :(得分:0)
使用右手规则,假设您的三角形是CCW顺序的A,B,C。那么你需要
Normal = Cross(B-A, C-A);
你设置u,v和不一致的方式两个向量应该有相同的尾部,这样就更加一致。
如果您想使用u,请按照您设置的方式使用v x u
使用right hand rule。