2

我正在尝试计算圆锥的平滑法线。在四处寻找代码示例和解释时,我总是遇到面部法线的方向。我在下面发布了几张我正在做的事情的照片。第一个 - 基本上只是标准化顶点位置 - 给了我相当平滑的阴影,但边缘“缺失”并且底面不是实心的。第二个有边缘,但阴影是平的(面法线),我的光没有正确地反射掉它们。

圆锥体由 GL_TRIANGLES 构建而成。

单击图像以获得更大的版本。


(来源:bantherewind.com


(来源:bantherewind.com

4

2 回答 2

2

在除顶点之外的圆锥表面上的任何一点上,都有两种明显的切向量:一种与横截面圆相切,一种在斜面上。如果将曲面表示为具有两个参数的参数方程,则可以将这些切向量作为两个偏导数。取切线的叉积,得到一个法向量。产品的顺序决定了正常点是向内还是向外。当然,底面必须分开处理。

于 2012-08-26T07:17:48.183 回答
1

除了JWWalker 的回答之外,我想指出,顶点是一个完整的向量元组,其中包括位置和法线。所以如果你在一个位置有不同的法线,你就会得到不同多个顶点。

在圆锥的情况下,这很重要,因为圆锥的尖端不是一个单独的顶点,而是它们的一整套(圆锥的外套的每个三角形都有一个尖端顶点。然后对于你在每个位置得到的基圆两个顶点,一个用于顶点的三角形,一个用于底面。

尖端和边缘都是不连续的,因此需要使用单独的顶点进行绘制。

于 2012-08-26T10:48:07.123 回答