我将车辆模型从blender导出到obj文件,然后导入到three.js。通过遍历加载的对象并将自定义材质应用于THREE.Mesh的所有实例,我可以将材质应用于每个“网格”对象......
但是,我似乎无法找到对导出为类型的项目执行相同操作的方法:'LineSegments',这些似乎总是绘制为线框...假设某种转换是必需(在导出前的blender中,或在three.js循环内)...
之前有人管理过吗?
提前致谢!
答案 0 :(得分:0)
我可能完全错了,在这种情况下,请原谅,但据我所知,当您将模型导出为LineSegments时,您明确地导出了线框模型。
材料只能应用于表面(甚至是小表面)。
如果要将材质应用于模型,则需要以其他格式/类型导出模型。
答案 1 :(得分:0)
看一下导出文件的文本。您可以使用文本编辑器打开它并查看它。
查看那里的“faces”是否有定义。我猜想linesegments导出器只在顶点之间创建链接,但是没有定义面 - 因此如果文件没有描述哪些顶点形成面,则不会填充。
但是只需查看文本文件并确保定义不仅仅是顶点,UV和法线。如果没有面部定义(它们将是3个整数的集合,即[12,15,17]),则无法渲染面部。
您应该尝试将其导出为普通网格/几何体。
答案 2 :(得分:0)
我遇到了同样的问题。我通过打开.OBJ文件并删除所有以“ l”(字母L)开头的行来解决该问题。
就我而言,我有一个网格,但是形状组中有1或2条线;在形状组中找不到它们,因此我将它们从导出中删除。
答案 3 :(得分:0)
我有一个类似的问题,我将导出文件的格式从obj更改为gltf。希望对别人有帮助。