FBX 模型的面(某些)未正确渲染

Posted

技术标签:

【中文标题】FBX 模型的面(某些)未正确渲染【英文标题】:FBX model's faces (some) are not rendering properly 【发布时间】:2013-03-31 06:32:17 【问题描述】:

我在 Maya 中创建了一个基本球体并将其加载到我的 OpenGL 项目中。我遇到的问题如下所示:

如您所见,球体是三角形的。

但是当模型被加载到我的项目中时,一些面没有正确渲染。

这些是我的 Maya FBX 导出设置(选中):

常规选项 - 默认文件扩展名 - 保留参考文献

当前预设 - 用户定义

几何 - 平滑网格

将 NURBS 曲面转换为: - 软件渲染网格 - 引用的容器内容

嵌入媒体 - 嵌入媒体

单位 - 自动

轴转换 - 上轴:Y

用户界面 - 显示警告管理器 - 生成日志数据

FBX 文件格式 - 类型:二进制 - 版本:FBX 2013

关于为什么会发生这种情况的任何想法?我正在使用 FBX SDK 2013。

编辑:

在发布时没有意识到白色三角形(标记为“坏三角形”)是由于简单的光照渲染而出现的。但是他在右边的扩展栏是实际问题。

【问题讨论】:

【参考方案1】:

在我的 youtube 视频上看到你的问题。

在我看来,您的一些三角形在扩展条上被剔除。也许酒吧上的一些三角形有不正确的缠绕?要检查的东西。检查三角形上的绕组并使用 opengl 剔除面。

至于阴影,我以前见过类似的东西。看起来您可能需要启用平滑着色,而不是平面着色。尝试调用 glShadeModel(GL_SMOOTH);

也可以尝试调用 glDisable(GL_TEXTURE_2D)。如果启用了纹理但未提供适当的纹理坐标,则可能会导致您看到的奇怪的扁平阴影三角形。

我能想到的唯一其他可能性就是您的法线设置不正确。以下是可能发生这种情况的几个原因:

    您没有正确导出法线。 您没有将法线正确导入顶点缓冲区对象,或者您缓存了信息 您的着色器(假设您没有使用即时模式)未正确读取或处理法线。

希望这会有所帮助。祝你好运!

【讨论】:

以上是关于FBX 模型的面(某些)未正确渲染的主要内容,如果未能解决你的问题,请参考以下文章

对于多个网格的 FBX 模型,网格未显示在正确位置

如何获得 fbx 网格的正确位置?

Three.js fbx 未正确加载

导入 THREEJS 的某些 fbx 模型的枢轴点错误

unity5怎样正确导入FBX,模型大小为啥会发生变化

Unity3D使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )