导入后面孔丢失

时间:2013-11-30 20:40:07

标签: three.js

我通过在Blender中提取一个平面创建了这个T块:

Blender

之后,我使用official Three.js Blender Exporter导出它并使用下面的代码导入它。但不幸的是,面孔不见了。我已经读过可能需要使用THREE.GeometryUtils.triangulateQuads(),但这没有帮助。有什么想法吗?

Three.js

loader.load "/scripts/blocks/T.js", (geometry, materials) =>
    THREE.GeometryUtils.triangulateQuads geometry

    mesh = new THREE.Mesh(
        geometry
        materials[0]
    )

    mesh.position.y = 500
    mesh.scale.set 50, 50, 50

    @get("scene").add mesh

    @render()

我的搅拌机是here

2 个答案:

答案 0 :(得分:0)

Blender的问题是某些网格操作需要法线重新计算。 实际上,例如,当您沿X轴镜像网格时,生成的镜像网格将具有反转法线。

如果您想深入检查网格,请尝试:MeshLab 这是一种高级网格编辑工具。它有很多过滤器,您可以检查并验证建模对象的面部方向:

Face orientation issue

在过滤器中有例如:

  • 过滤器 - >法线,曲率和方向 - >一致地重新定位所有面孔
  • 过滤器 - >法线,曲率和方向 - >反转面部方向

这样你就会有一个连贯的网格。

但是如果你不想做所有这些,你可以直接在你的three.js场景中将你的模型材质设置为双面。

@WestLangley已经指出了如何将材料设置为双面。这是:three.js how to make double sided object

希望这有帮助

答案 1 :(得分:0)

你也可以简单地重新计算Blender中的法线。手册上写着http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes/Editing/Faces#Recalculate_Normals

  

重新计算法线

Mode: Edit mode
Hotkey: Ctrl-N
Menu: Mesh » Normals » Recalculate Outside 

(注意:里面也有重新计算,但为了清楚起见,我在这里进行了编辑)

  

这些命令将重新计算所选面的法线,使它们指向面部所属的体积的外部(分别在内部)。

您还可以在3d视图中启用查看法线,以便检查是否有一些法线朝向内部。

双面工作也是如此,当然你需要从双方都需要一些面孔时需要它。