【问题标题】:three.js - model after being mirrored (flipped) doesn't render appropriatelythree.js - 被镜像(翻转)后的模型无法正确呈现
【发布时间】:2015-07-27 10:30:34
【问题描述】:

我已将两个 *.obj 模型加载到我的应用程序中。它们是相同的,只是其中一个是从另一个“镜像”出来的。

图一为原机,图二为镜像。问题出现在第二个。

当您仔细观察时,您会发现门把手没有正确渲染。

为什么会这样?在 Blender 中,它们看起来都很好。

我正在使用 three.js 渲染它们。

【问题讨论】:

    标签: 3d three.js


    【解决方案1】:

    看起来 Blender 中的镜像也会翻转网格的面。仔细观察,您不仅可以看到它的门把手,还可以看到模型上的任何地方。

    您可以通过使用material.side = THREE.BackSide;THREE.DoubleSide 更改材料来弥补这一点。


    另一种解决方案是通过在要镜像的轴上设置负比例来在 Three.js 中镜像您的模型。我猜你想在 X 轴上翻转,然后这样做: mesh.scale.set( -1, 1, 1 );

    编辑:在应用负比例时,请考虑以下 cmets 中来自 West Langley 的警告。

    【讨论】:

    • 我没有在 three.js 中“翻转”(;))它们——我在搅拌机中使用镜像功能做到了这一点。此外,即使我先镜像这些门并在问题仍然存在后应用纹理。
    • 将材料面更改为 DoubleSide 会发生什么情况?
    • 我不在任何地方使用材质 - 我将纹理导入为 *.mtl,并且在我的代码中没有将其分配给模型。
    • 加载模型时,加载器会从您的 mtl 文件中生成材料。见stackoverflow.com/a/31642463/4977165
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 2015-04-22
    • 2022-09-27
    • 2019-08-18
    • 1970-01-01
    • 2022-11-12
    • 2021-12-17
    • 2019-06-04
    相关资源
    最近更新 更多