1

こんにちは私は画像を立方体にロードしようとしていますが、何が悪いのかわかりません。立方体は問題ありませんが、画像は問題ありません。リンクは次のとおりです:http://diegoddox.bitbucket.org/loadimage/

var scene, camera, renderer;
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColorHex(0xeeeeee);
renderer.clear();
document.body.appendChild(renderer.domElement);
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 70, window.innerWidth/window.innerHeight, 0.1, 5000 );
camera.position.z = 800;
camera.lookAt(scene.position);
scene.add(camera);
var material = new THREE.MeshBasicMaterial({
    map: THREE.ImageUtils.loadTexture("img.jpg")
});
material.map.needsUpdate = true; 
var cube = new THREE.Mesh(new THREE.CubeGeometry(300, 300, 300), material);
cube.overdraw = true;
cube.position.x = 0;
cube.rotation.x = -20;
cube.rotation.z = -2;
scene.add(cube);
renderer.render(scene, camera);
4

1 に答える 1

6

画像の読み込みは非同期です。

何が起こっているのかというとrender()、画像の読み込みが完了する前に1回の呼び出しが発生しているということです。

入る

renderer.render(scene, camera);

コンソールに移動すると、テクスチャがレンダリングされることがわかります。

loadTexture()関数にコールバックを追加してrender()そこから呼び出す必要があります。または、を使用してアニメーションループを追加することもできますrequestAnimationFrame()

于 2013-02-19T17:45:13.820 に答える