当我使用面法线在OpenGL中点亮我的人体模型时,每个面都在模型上的位置非常明显。使用顶点法线照明变得相当平滑但仍然明显。是否有任何技术可用于平滑有机模型而不添加额外的顶点(例如细分)?
答案 0 :(得分:6)
如果您看到每个顶点法线的单面,您可能忘记启用平滑面:
glShadeModel(GL_SMOOTH);
如果这没有帮助确保具有相同位置的所有顶点也具有相同的法线。但这应该由搅拌机自动完成。您的模型也可能只有很少的多边形。如果是这种情况,你要么必须使用更多的多边形,要么做贝塞罗所说的。 Create a normal map并将其与GLSL着色器一起使用。
答案 1 :(得分:4)
如果您可以访问更高分辨率的模型/网格,或者可能是一个体面的3d modeling tool,可以通过细分或其他花哨方法创建高分模型...
GLSL per-pixel-lighting + normal maps
更新:
http://www.blender.org/development/release-logs/blender-246/render-baking/
答案 2 :(得分:1)