4

私はThree.JSを初めて使用し、非常に単純な(単一の立方体の)SketchupモデルをColladaLoaderを介してThree.JSにロードしようとしていますが、エラーは発生しませんが、何も表示されません。

var renderer = new THREE.WebGLRenderer();
var loader = new THREE.ColladaLoader();
var scene = new THREE.Scene();
var camera = new THREE.Camera();
loader.load('Test.dae', function (result) {
  scene.add(result.scene);
});
camera = new THREE.PerspectiveCamera(35, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set(0, 0, 5);
scene.add(camera);
renderer.render(scene,camera);

誰かが即時のエラーを見つけることができますか?ありがとう

4

4 に答える 4

4

修理済み。レンダラーを宣言しましたが、ドキュメントに添付していませんでした。次のコードが機能します。

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(100, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
camera.position.set(0, 0, 4);
var loader = new THREE.ColladaLoader();
loader.load("test.dae", function (result) {
    scene.add(result.scene);
});

function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
}
render();
于 2013-03-10T22:37:25.907 に答える
1
    loader.load('test.dae', function colladaReady(collada) {

    localObject = collada.scene;

    localObject.scale.x = localObject.scale.y = localObject.scale.z = 2;
            localObject.updateMatrix();
scene.add(localObject);

colladaシーンにオブジェクトを追加する必要があると思います。または、追加しているオブジェクトのスケーリングに問題がある可能性があります。スケーリングしてから、オブジェクトのマトリックスを更新してください。

于 2013-03-11T01:57:53.953 に答える
1

コラーダがロードされた後、シーンを再レンダリングする必要があります。何かのようなもの

loader.load('Test.dae', function (result) {
  scene.add(result.scene);
  renderer.render(scene,camera);
});

さらに:

  • カメラがジオメトリ内にある可能性があります。面はデフォルトで片面であり、背面/内側から見ると見えません。カメラまたはオブジェクトの位置を変更したり、material.side = THREE.DoubleSide を設定したりして、面が前面と背面の両方から見えるようにすることができます。
  • モデルの縮尺がかなりずれている可能性があるため、小さすぎたり大きすぎたりして表示できない場合があります。さまざまなカメラ位置 (例: z= -1000, -100, -10, -1, 1, 10, 100, 1000) を試し、lookAt() を使用して 0,0,0 を指すか、colladaloader には最近のスケール設定、よくわかりません。
  • ローダーのデフォルトの位置は 0,0,0 なので、ワールド/シーンの中心です。それは必ずしも画面の中心を意味するわけではなく、カメラによって異なります。場合によっては、Collada モデル自体の中心が可視オブジェクトから離れている場合があるため、シーンに配置すると、事実上「中心からずれて」しまう可能性があります。しかし、それはほとんどありません。
  • シーンにライトがありません。
于 2013-03-10T12:05:39.210 に答える