相关疑难解决方法(0)

使用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)

three.js

6
推荐指数
1
解决办法
3484
查看次数

在 Three.js 中转换顶点法线

我在 THREE.js 中的顶点法线方面遇到困难。(作为参考,我使用的是修订版 58。)出于各种原因,我想在设置几何体时首先计算面顶点法线,然后可以自由地对其进行变换、合并等。

虽然我意识到法线取决于应用矩阵时变换的顶点,但我认为 Geometry.applyMatrix 也能够变换它们。然而,虽然以下工作正常:

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

...以下操作顺序会产生反转的顶点法线:

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

所以我只是想知道,这是否按预期工作?在计算顶点法线之前,是否需要首先对几何体进行所有变换?

javascript three.js

4
推荐指数
1
解决办法
4994
查看次数

标签 统计

three.js ×2

javascript ×1