2012-07-18 47 views
0

我正在做THREE.js的第一步。THREE.js第一步:嘗試向場景添加攪拌機模型的問題

現在的我只是試圖修改在這裏找到一個示例文件:http://aerotwist.com/tutorials/getting-started-with-three-js/

的文件創建三個場景,增加了一個球體和一個點光源。

我的問題是: 我不覺得如何,我創建使用攪拌機2.63,並使用攪拌機2.63出口導出的模型來代替球。

我想我的語法有點不對。

這裏是我下面的代碼。誰能告訴我什麼改變來獲取要顯示在舞臺上我的攪拌機模式?

thx。

<head> 
    <meta charset="utf-8" /> 
    <title>Sample Three.js</title> 
    <link rel="stylesheet" href="js/Styles.css" /> 
</head> 
<body> 

    <div id="container"> 
    </div> 

</body> 
<script src="js/Stats.js"></script> 
<script src="js/Three.js"></script> 
<script> 

var WIDTH = 700, 
    HEIGHT = 600; 


var VIEW_ANGLE = 45, 
    ASPECT = WIDTH/HEIGHT, 
    NEAR = 0.1, 
    FAR = 10000; 

var container = window.document.getElementById('container'); 


var renderer = new THREE.WebGLRenderer(); 
var camera = new THREE.PerspectiveCamera( VIEW_ANGLE, 
           ASPECT, 
           NEAR, 
           FAR ); 
var scene = new THREE.Scene(); 


camera.position.z = 300; 


renderer.setSize(WIDTH, HEIGHT); 


container.appendChild(renderer.domElement); 


var sphereMaterial = new THREE.MeshLambertMaterial(
{ 
    color: 0xCC0000 
}); 


//var radius = 50, segments = 16, rings = 16; 

var loader = new THREE.JSONLoader(); 

loader.load('js/ModelTest.js', function (geometry) { 
    mesh = new THREE.Mesh(geometry, sphereMaterial); 
    scene.add(mesh); 
    mesh.position.x = 0; 
    mesh.position.y = 0; 
    mesh.position.z = 0; 
alert(mesh.geometry.vertices.length) 
}); 

//var sphere = new THREE.Mesh(
//new THREE.SphereGeometry(radius, segments, rings),sphereMaterial); 

//scene.add(sphere); 

scene.add(camera); 

var pointLight = new THREE.PointLight(0xFFFFFF); 

pointLight.position.x = 10; 
pointLight.position.y = 50; 
pointLight.position.z = 130; 

scene.add(pointLight); 

renderer.render(scene, camera); 

</script> 

回答

0

沒有一個活生生的例子,它是很難知道...

裝載是異步發生。移動渲染()調用裝載機回調函數的最後一行。 (替換您的警報電話)。

確保相機距模型足夠近以便看到它。

camera.lookAt(scene.position)將確保相機在移動後正在查看原點。

1

也許一個愚蠢的答案,但我有同樣的問題,並解決了它縮放對象。 嘗試在mesh.position.z = 0之後添加回調函數:

mesh.scale.x = mesh.scale.y = mesh.scale.z = 200;

對我來說它的工作。

希望有用。 彼得