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 模型的面(某些)未正确渲染的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )