创建自定义 .OBJ / .MTL 文件并使用 three.js 进行渲染

Posted

技术标签:

【中文标题】创建自定义 .OBJ / .MTL 文件并使用 three.js 进行渲染【英文标题】:Create custom .OBJ / .MTL file and render it with three.js 【发布时间】:2013-11-30 22:17:39 【问题描述】:

我尝试创建一个简单的搅拌机模型,将其导出为 .obj/.mtl 并使用 three.js 进行渲染。但是有些东西不起作用。我下载(并上传)了完整的官方three.js-demo。 objmtl-loader 工作正常。与原始模型。

但是如果我在搅拌机中创建一个新文件,导入原始的 obj 模型(来自演示),然后添加一个简单的锥体并将其再次导出到 obj,在我的演示页面上,除了我的锥体之外,所有内容都将显示。

我比较了每个简单的参数(圆锥 导入模型)- 没有区别。

My demo-page

My blender-file

我必须做什么才能从搅拌机中获得可渲染的 obj-model-export?

(我尝试了多种文件格式,但对于我的用例 Wavefront (obj) 是最好的)

【问题讨论】:

抱歉,我无法发布 .blend 文件的内容(可以吗?)。我的演示页面的代码只是加载了我的 .obj 的 default-threejs-javascript。 [链接] (webgl.pauly.io/webgl_loader_obj_mtl.html) 我认为问题出在我的搅拌机文件... 你的锥体不是三角形的(至少在底部),这是我的第一个想法。您可以选择锥体、切换编辑模式、全选,然后按 Ctrl + T 或 Mesh > Faces > Triangulate faces 来修复它。或者在 OBJ 导出中选择三角面 【参考方案1】:

确实,它一定与您的 Blender 导出有关。

不确定它们是如何播放的,但在 Blender 中更改这些设置,我可以看到你的 Cone:

在导出 > 波前,检查 Objects as OJB Groups 选择锥形,编辑模式,Make Normals Consistent

我了解第一个将Cone的类型从Object3D更改为Mesh,第二个让纹理放在上面。

希望对你有帮助

【讨论】:

难以置信——我完全按照你的要求做了。但是锥体仍然是看不见的。我使用以下教程创建了一个新文件,并使用您的参数导出了它 - 现在它可以工作了!所以,非常感谢!!! Tutorial

以上是关于创建自定义 .OBJ / .MTL 文件并使用 three.js 进行渲染的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 obj 文件中的路径加载 mtl?

将 ARCore 与 OBJ 和 MTL 文件一起使用

更改材质后再次加载原始纹理(.mtl)

如何导入 3D 场景(.obj 文件和 .mtl 文件)

three.js obj 和 mtl 文件用阴影呈现黑色

我的OpenGL学习进阶之旅关于3D模型知识之:什么是obj文件和mtl文件