Three.js,blender to obj import和LineSegments渲染问题

时间:2017-05-17 12:54:03

标签: three.js blender

我将车辆模型从blender导出到obj文件,然后导入到three.js。通过遍历加载的对象并将自定义材质应用于THREE.Mesh的所有实例,我可以将材质应用于每个“网格”对象......

但是,我似乎无法找到对导出为类型的项目执行相同操作的方法:'LineSegments',这些似乎总是绘制为线框...假设某种转换是必需(在导出前的blender中,或在three.js循环内)...

之前有人管理过吗?

提前致谢!

4 个答案:

答案 0 :(得分:0)

我可能完全错了,在这种情况下,请原谅,但据我所知,当您将模型导出为LineSegments时,您明确地导出了线框模型。

材料只能应用于表面(甚至是小表面)。

如果要将材质应用于模型,则需要以其他格式/类型导出模型。

答案 1 :(得分:0)

看一下导出文件的文本。您可以使用文本编辑器打开它并查看它。

查看那里的“faces”是否有定义。我猜想linesegments导出器只在顶点之间创建链接,但是没有定义面 - 因此如果文件没有描述哪些顶点形成面,则不会填充。

但是只需查看文本文件并确保定义不仅仅是顶点,UV和法线。如果没有面部定义(它们将是3个整数的集合,即[12,15,17]),则无法渲染面部。

您应该尝试将其导出为普通网格/几何体。

答案 2 :(得分:0)

我遇到了同样的问题。我通过打开.OBJ文件并删除所有以“ l”(字母L)开头的行来解决该问题。

就我而言,我有一个网格,但是形状组中有1或2条线;在形状组中找不到它们,因此我将它们从导出中删除。

答案 3 :(得分:0)

我有一个类似的问题,我将导出文件的格式从obj更改为gltf。希望对别人有帮助。