使用Three.js翻转(镜像)任何对象

Imm*_*gio 6 three.js

我正在尝试创建一个可以翻转Three.js场景中任何对象的实用程序.翻转本身很容易:

object3D.applyMatrix(new THREE.Matrix4().makeScale(-1, 1, 1));
Run Code Online (Sandbox Code Playgroud)

事实证明困难的是在翻转后修复面部和法线.结果看起来很混乱.源和翻转对象的图像:https://dl.dropboxusercontent.com/u/20925853/Flipped.png

我已经看到了许多线程,其中讨论了这个和类似的问题,但没有找到任何可用的东西.有人知道我在那里失踪了吗?- 谢谢!

关于Js小提琴的示例代码:https: //jsfiddle.net/7dwh084w/

object3D.applyMatrix(new THREE.Matrix4().makeScale(-1, 1, 1));
Run Code Online (Sandbox Code Playgroud)

teh*_*nsi 7

我在项目中使用此代码来翻转对象:

    const scale = new THREE.Vector3(1, 1, 1);
    if (flipX) {
        scale.x *= -1;
    }
    if (flipY) {
        scale.z *= -1;
    }
    object.scale.multiply(scale);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。