最近我花了一些时间研究three.js。我在搅拌机中创建了一个 3d 模型,然后将其导入到 three.js 中。一切正常,morphAnimMesh 中的数据,如 currentKeyframe 和 lastKeyframe 都在更新,但它只是不渲染动画,只是一个静态的 3d 对象。有人可以帮我吗?谢谢。
这是我工作的网址: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);
}