我有一个我想要应用光照的物体。它在具有顶点坐标的文本文件中描述。
我在OpenGL Superbible中阅读了以下内容:
void m3dFindNormal(M3DVector3f vNormal, const M3DVector3f vP1, const M3DVector3f vP2, const M3DVector3f vP3);
要使用此功能,请将其传递给矢量 存储正常和三个向量 (每个只是一个三个花车的阵列) 从你的多边形或三角形 (以逆时针方向指定 订购)。请注意,这返回正常 向量不一定是单位长度 (标准化)。
据我所知,我传递顶点的顺序(顺时针或逆时针)决定了法线向量的方向,所以我想知道如何使用this format文件来使用该函数。
答案 0 :(得分:2)
我的建议没有。 0是:
严肃地使用其他格式。 :)顶点的原始二进制转储(位置+法线+纹理坐标+颜色+其他)然后索引通常是最简单的解决方案。如果你真的 *真的*想要使用.off ...
我的建议没有。 1是:
如果您因任何原因不想(或不能)这样做,那么就如何自己生成法线提出一些建议:
A,B,C
,它是(B-A)x(C-B)
)。不要将它重新缩放到长度= 1 - 面部区域越大,得到的法向量就越长,这就是我们想要的(现在)。答案 1 :(得分:0)
尝试一下,顺序取决于创建.off文件的程序,格式的描述似乎没有定义正常的方向。我只是将它们出现在索引列表中的顺序传递给函数。如果这不起作用,请以相反的顺序传递它们。