2

当我在 OpenGL 中使用人脸法线照亮我的人体模型时,每个人脸在模型上的位置非常明显。使用顶点法线,光照变得相当平滑,但仍然很明显。是否有任何技术可用于在不添加额外顶点(例如细分)的情况下平滑有机模型?

4

3 回答 3

6

如果您看到每个顶点法线的单个面,您可能忘记启用平滑面:

glShadeModel(GL_SMOOTH);

如果这无助于确保具有相同位置的所有顶点也具有相同的法线。然而,这应该由搅拌机自动完成。也可能是您的模型的多边形太少。如果是这种情况,您要么必须使用更多多边形,要么按照 basszero 所说的做。创建一个法线贴图并将其与 GLSL 着色器一起使用。

于 2009-06-05T07:50:37.087 回答
4

如果您可以访问更高分辨率的模型/网格,或者可能是一个不错的3D 建模工具,可以通过细分或其他奇特的方法创建一个高分辨率模型......

GLSL 每像素光照+法线贴图

更新:

http://www.blender.org/development/release-logs/blender-246/render-baking/

于 2009-06-05T02:48:13.547 回答
1

是的,有许多不同的技术。一种是首先计算每个面的法线(您可能正在将其用于面中的顶点),然后使用这些法线来计算每个顶点的新法线。

这是计算五个相邻三角形的平均值的方法。

干杯!

于 2009-06-05T06:15:15.100 回答