4

最近、three.js を掘り下げることに時間を費やしました。Blender で 3D モデルを作成し、それを three.js にインポートします。すべて正常に動作し、currentKeyframe や lastKeyframe などの morphAnimMesh 内のデータは両方とも更新されますが、アニメーションはレンダリングされず、静的な 3D オブジェクトのみがレンダリングされます。誰か助けてくれませんか?ありがとう。

これは私の作品の URL です: http://www.dustedge.com/mathspace/three_test2.html

私のコードはすべてここにあります:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var histLookVector = new THREE.Vector3(1,1,1);
var currentLookVector = new THREE.Vector3(1,1,1);
var xAxis = new THREE.Vector3(1,0,0);
var yAxis = new THREE.Vector3(0,1,1);
var renderer = new THREE.WebGLRenderer();
var mesh;
var time;
var oldTime;
var delta;
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

camera.position.x = -20;
camera.position.y = 20;
camera.position.z = 20;
camera.lookAt(currentLookVector);
var x=0;
var loader = new THREE.JSONLoader();
loader.load( "nets.js", createGeometry  );
function createGeometry(model){
    var material = new THREE.MeshNormalMaterial({morphTargets:true});

    mesh = new THREE.MorphAnimMesh(model, material);
    mesh.scale.x = mesh.scale.y = mesh.scale.z = 4;
    mesh.position.x = 10;
    mesh.time = 0;
    mesh.duration = 2000;

    oldTime = time = new Date().getTime();
    scene.add(mesh);
    render();
}

function render() {
    requestAnimationFrame(render);
    time= new Date().getTime();
    delta= time-oldTime;
    oldTime=time;


    if(mesh){
        mesh.updateAnimation(delta);
        //console.log('current: ' + geometry.currentKeyframe);
    }

    renderer.render(scene, camera);
}
4

0 に答える 0