一般情况下,使用 Three.js 绘制一个三维图形需要下面的这些步骤(或元素)
(1) 创建渲染器,如 new THREE. WebGLRenderer();
(2) 指定渲染器在哪里渲染,如 $(‘#myContainer’).append(myRenderer.domElement);
(3) 创建场景,如 new THREE. Scene();
(4) 创建相机,如 new THREE. OrthographicCamera(-s k, s k, s, -s, 1, 1000);
(5) 创建光源,如 new THREE. PointLight(‘red’);
(6) 在场景中添加光源,如 myScene.add(myLight);
(7) 创建几何体,如 new THREE. BoxGeometry(100, 100, 100);
(8) 创建材质,如 new THREE. MeshLambertMaterial({ color: 0xffbf00 });
(9) 根据几何体和材质创建网格,如 new THREE. Mesh(myGeometry, myMaterial);
(10) 在场景中添加网格,如 myScene.add(myMesh);
(11) 开始渲染,即把场景和相机添加到渲染器中,如 myRenderer.render(myScene, myCamera);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| var myRenderer = new THREE.WebGLRenderer(); var myWidth = 480 ; var myHeight = 320; myRenderer.setSize(myWidth, myHeight); myRenderer.setClearColor('white', 1); console.log('myRenderer:', myRenderer); $('#myContainer').append(myRenderer.domElement);
var myScene = new THREE.Scene(); var myLight = new THREE.PointLight('red'); myLight.position.set(400, 800, 300); myScene.add(myLight);
var k = myWidth / myHeight; var s = 120; var myCamera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
myCamera.position.set(400, 300, 200); myCamera.lookAt(myScene.position);
var myGeometry = new THREE.BoxGeometry(100, 100, 100); var myMaterial = new THREE.MeshLambertMaterial({ color: 0xffbf00 }); var myMesh = new THREE.Mesh(myGeometry, myMaterial); myScene.add(myMesh);
myRenderer.render(myScene, myCamera);
|