通过Blender与OpenGL使对象平滑

通过Blender与OpenGL使对象平滑,opengl,opengl-es,3d,Opengl,Opengl Es,3d,我正在Blender中创建多边形网格模型,并尝试在OpenGL中以.obj和.ctm的形式加载和使用这些模型 我的问题是,在OpenGL应用程序中使对象平滑的常识是什么?在blender中使模型平滑,然后将其导出为.obj,还是按原样导出模型,然后在OpenGL中使其平滑 我不是说平滑的线条,我想使整个物体平滑 显然,在Blender中进行平滑会增加文件大小、顶点数等,而在OpenGL中进行平滑则需要更多的处理。然而,我不确定在OpenGL中实现平滑是否可行。例如,我尝试了下面的代码,但它没有帮

我正在Blender中创建多边形网格模型,并尝试在OpenGL中以
.obj
.ctm
的形式加载和使用这些模型

我的问题是,在OpenGL应用程序中使对象平滑的常识是什么?在blender中使模型平滑,然后将其导出为
.obj
,还是按原样导出模型,然后在OpenGL中使其平滑

我不是说平滑的线条,我想使整个物体平滑

显然,在Blender中进行平滑会增加文件大小、顶点数等,而在OpenGL中进行平滑则需要更多的处理。然而,我不确定在OpenGL中实现平滑是否可行。例如,我尝试了下面的代码,但它没有帮助我使我的模型平滑

glShadeModel(GL_SMOOTH); 
glHint(GL_POLYGON_SMOOTH_HINT, GL_FASTEST); 
glEnable(GL_POLYGON_SMOOTH);

您可能需要查看一些关于不同着色器模型的教程。 平滑着色器将插值面颜色,而实体着色器将在单个颜色上渲染每个面。有时,使用平滑着色器可以单独创建平滑对象的错觉,并且计算成本通常可以忽略不计。根据对象的不同,可能需要在导出之前添加一些顶点,以在渲染后实现平滑外观

谷歌带来了这个结果,我打赌还有很多其他教程,你可以看看。

你的问题毫无意义。平滑的“下图”与任何会增加“文件大小、顶点数等”的内容无关。它完全来自于对现有顶点应用法线和执行照明计算。所以不清楚你说的是照明还是镶嵌,这是非常重要的。你的答案和教程链接真的帮了我很多。