【发布时间】:2012-11-10 08:57:02
【问题描述】:
我有一个结构 QUAD,它存储了 4 个指向 4 个 VECTOR3D(包含 3 个浮点数)的指针,以便我可以绘制四边形网格。 据我了解,每当我绘制网格时,我也需要使用法线来正确地对网格进行光照/着色,而当它是放置在平原上的网格时,它相对容易,每张脸都使用法线。
当我在 XZ 坐标上放置 2 x 2 四边形网格并尝试将其中心 (0,0,0) 提升到某个点时,例如 (0, 4, 0),它将开始形成真正的 3D 形状,然后我需要再次计算法线。我很难理解计算法线的方式和内容。正如预期的那样,3D 形状的阴影就像它仍然是一个平面网格,所以它不代表真实的形状。一种解释说我需要计算每个顶点而不是每个面的法线。 这是否意味着我需要计算网格所有角的法线?一旦我有法线,我会怎么做?我仍在使用旧的 glBegin glEnd 方法,但现在我觉得我需要使用 DrawArray 方法。我很困惑,我很确定我的声音不大,但我非常感谢你的帮助。
【问题讨论】: