小编mic*_*ory的帖子

当材质蒙皮为真时,Three.js蒙皮动画网格消失

我从Blender导出了一个动画模型,似乎没有任何问题实例化.我能够创建THREE.Animation和模型,但我发现没有动画.我意识到我需要skinning在每种材料上设置真实,但是当我这样做时,整个网格都会丢失.

下面是我(快速和凌乱)的代码试图让一切工作.

function loadModel() {
        var loader = new THREE.JSONLoader();
        loader.load('assets/models/Robot.js', function(geom, mat) {
            _mesh = new THREE.Object3D();
            _scene.add(_mesh);

            geom.computeBoundingBox();

            ensureLoop(geom.animation);
            THREE.AnimationHandler.add(geom.animation);

            for (var i = 0; i < mat.length; i++) {
                var m = mat[i];
                //m.skinning = true; <-- Uncommenting this makes the model disappear
                //m.morphTargets = true; <-- This causes all sorts of WebGL warnings

                m.wrapAround = true;
            }

            var mesh = new THREE.SkinnedMesh(geom, new THREE.MeshFaceMaterial(mat));
            mesh.scale.set(400, 400, 400);
            mesh.position.set(0, -200, 0);
            mesh.rotation.set(Utils.toRadians(-90), 0, …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

5
推荐指数
1
解决办法
1670
查看次数

将旋转从父级 Object3D 传输到子级 - 三个 js

我有一个Mesh嵌套在Object3D. 我想做的是Object3D在拖动过程中在 x 和 y 轴上旋转,然后在将Object3D其旋转转移到内部后释放时将旋转重置为 0, 0, 0 Mesh

我的方法可能是完全错误的,但它似乎对第一乐章有效,但在那之后就崩溃了。我认为这可能与欧拉订单有关。

我正在使用的代码是:

function mouseDown(e) {
    hold.x = e.pageX;
    hold.y = e.pageY;
    window.addEventListener('mousemove', mouseMove);
}

function mouseMove(e) {
    var diffX = e.pageX - hold.x;
    var diffY = e.pageY - hold.y;

    object.rotation.x = (diffY * 0.25) * RADIAN;
    object.rotation.y = (diffX * 0.25) * RADIAN;
}

function mouseUp() {
    window.removeEventListener('mousemove', mouseMove);

    cube.rotation.x += object.rotation.x;
    cube.rotation.y += object.rotation.y;

    object.rotation.x = 0;
    object.rotation.y = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript 3d three.js

2
推荐指数
1
解决办法
3544
查看次数

标签 统计

javascript ×2

three.js ×2

3d ×1