これは非常に単純な質問だと思います (私は three.js を学んでいます)。検索する適切な単語を見つけることができませんが、ここに行きます。
回転する地球のアニメーション化に取り組んでいます。閲覧者がページを読み込んだときに、地球が常に同じポイントから回転を開始するようにします。私は進んで学習しているので、http://jeromeetienne.github.com/threejsboilerplatebuilder/の定型文から始めて、必要のない要素を差し引いて、見つかった他の例に基づいて必要なものを追加しようとしましたウェブの周り。アニメーションは、最初の方向の問題以外は正常に機能します。現在、アニメーションをリロードすると、球体の位置は初期位置にリセットされるのではなく、リロードを押す前の位置に戻ります。これが私のスクリプトです: var scene, renderer, composer; var カメラ、cameraControl; var グローブ;
if( !init() ) animate();
// init the scene
function init(){
if( Detector.webgl ){
renderer = new THREE.WebGLRenderer({
antialias : true, // to get smoother output
});
}else{
renderer = new THREE.CanvasRenderer();
}
renderer.setSize( 567,567 );
document.getElementById('Stage_globe3d').appendChild(renderer.domElement);
// create a scene
scene = new THREE.Scene();
// put a camera in the scene
var cameraH = 3;
var cameraW = cameraH / 567 * 567;
camera = new THREE.OrthographicCamera( -cameraW/2, +cameraW/2, cameraH/2, -cameraH/2, -10000, 10000 );
camera.position.set(0, 0, 5);
scene.add(camera);
// here you add your objects
var light = new THREE.DirectionalLight(0xffffff, 2 );
light.position.set( 0,0,10 ).normalize();
scene.add( light );
var geometry = new THREE.SphereGeometry( 1.45, 50, 50 );
var material = new THREE.MeshLambertMaterial({map: THREE.ImageUtils.loadTexture("images/world.jpg")});
var globe = new THREE.Mesh( geometry, material );
// tried adding this, but it didn't work
//globe.rotation.y = 100;
scene.add( globe );
}
// animation loop
function animate() {
// loop on request animation loop
// - it has to be at the begining of the function
// - see details at http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
requestAnimationFrame( animate );
// do the render
render();
}
// render the scene
function render() {
var PIseconds = Date.now() * Math.PI;
// animation of all objects
for( var i = 0; i < scene.objects.length; i ++ ){
scene.objects[ i ].rotation.y = PIseconds*0.00003 * (i % 2 ? 1 : 1);
}
// actually render the scene
renderer.render( scene, camera );
}
現在の時間 (ボイラープレートから取得した) に基づく回転アニメーションに関係があるのではないかと考えましたが、同様のことを行うが、常に同じ初期位置から開始する他の例を見てきました (Walt Disney head fromたとえば、github の three.js の例)。誰かが私が間違っていることを教えて、私を正しい方向に導くことができますか?
ありがとう。