【问题标题】:Faces missing after import导入后人脸缺失
【发布时间】:2013-12-16 19:23:45
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以发送您的搅拌机文件吗?你在搅拌机中使用了什么出口商?您是否尝试将您的材料设置为双面?
  • 我已经添加了我的 Blender 文件。我正在使用 Blender 的官方 Three.js 导出器。我在哪里可以将我的材料设置为双面?谢谢!
  • @WestLangley 已经指出如何将材质设置为双面。这是:stackoverflow.com/a/16028030/2940964。希望这会有所帮助
  • 这行得通,谢谢!如果你写一个答案,我会把它标记为正确的。

标签: three.js


【解决方案1】:

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

如果你想深入检查你的网格,你应该尝试:MeshLab 这是一个先进的网格编辑工具。它有很多过滤器,您可以检查和验证建模对象的面部方向:

在过滤器中有例如:

  • 过滤器 -> 法线、曲率和方向 -> 连贯地重新定向所有面
  • 过滤器 -> 法线、曲率和方向 -> 反转面方向

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

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

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

希望对你有帮助

【讨论】:

    【解决方案2】:

    您也可以在 Blender 中简单地重新计算法线。手册说,http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes/Editing/Faces#Recalculate_Normals

    重新计算法线

    模式:编辑模式 热键:Ctrl-N 菜单:网格»法线»重新计算外部

    (注意:内部也有重新计算,但为了清楚起见,我在此处对其进行了编辑)

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

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

    双面也可以,当您确实需要双面的脸时,当然需要。

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 2015-03-29
      • 2013-02-10
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多