对于我遇到的问题:a)点的有序列表 b)构成每个多边形的点列表
例如
point1 = (1, 2, 2)
point2 = (1, 2, 3)
point3 = (1, 3, 3)
polygon1 = [ point1, point2, point3 ]
=> polygon1 是一个三角形,可以是模型外部的一部分。
我需要在 OpenGL 中计算正确的光照法线。
我知道我可以从给定的点计算平面上的向量,并通过叉积得到平面的法线,但是 OpenGL 要求法线指向正确的方向(即向外)。
这个过程需要自动化,因为我有很多多边形。
如果我在平面上选择两个向量,我无法确定如何确定法线我计算出的点在正确的照明方向上(即在模型的外部。)
我想我可以将计算出的法线添加到平面上的一个点,看看它是否离原点更远,看看它是否正确,但是模型非常复杂,一些法线可能需要指向原点(ish)
如果有帮助,事实证明所有多边形都是三角形(虽然看不出它有什么帮助,应该能够为任何多边形抽象)