对于问题我的列表正确法线:a)一个有序点b)中的点的列表组成每个多边形的列表OpenGL的计算给定的点
例如
point1 = (1, 2, 2)
point2 = (1, 2, 3)
point3 = (1, 3, 3)
polygon1 = [ point1, point2, point3 ]
=> polygon1是一个三角形,可以是模型外部的一部分。
我需要计算OpenGL中照明的正确法线。我知道我可以根据给定的点计算平面上的矢量,并且可以通过交叉乘积得到垂直于平面的平面,但OpenGL要求法线指向正确的方向(即向外)。
该过程需要自动化,因为我有很多多边形。
如果我选择在飞机上两个向量我不能告诉我怎么能肯定我在照明正确的方向上计算点的正常(即是在模型的外面。)
我我想我可以将计算的法线添加到平面上的一个点上,并查看它是否距离原点更远以查看其是否正确,但模型非常复杂,并且一些法线可能需要指向原点(ish)
如果它有帮助,事实证明所有的多边形都是三角形(不知道它是如何帮助的,但应该能够抽象出任何多边形)
如果有一个三角形在空间中漂浮,那么“正确的”一面是什么?对我来说,唯一正确的答案是双面照明。 – Ani 2012-02-15 21:38:34
您不能简单地使用正面顺序(顺时针或逆时针)来定义您制作交叉产品的顺序吗? – user1118321 2012-02-15 21:38:47
@ananthonline - 它不是一个漂浮在空间中的三角形,我有很多多边形,所有连接形成一个很好的封闭对象 – Blue42 2012-02-15 21:50:52