參考:threeJS開發指南javascript
threeJs三個基本要素html
一、scene:一個容器,保存並跟蹤咱們想渲染的物體java
二、camera:定義在scene裏能看到什麼jquery
三、rederer:計算指定camera角度下scene的樣子--使用什麼方式渲染(常見利用顯卡渲染)app
html:引入jQuery-1.9.0、threeJSdom
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加光源</title> <style> body { margin: 0; overflow: hidden; } <style/> </head> <body> <div id="WebGl-output"></div> <script type="text/javascript" src="../../build/jquery-1.9.0.js"></script> <script type="text/javascript" src="../../build/three.js"></script> <script type="text/javascript" src="index.js"></script> </body> </html>
js:ui
一、要初始化三要素scene、camera、rederercode
// 定義scene,camera,renderer // scene是一個容器,保存並跟蹤咱們想渲染的物體 var scene = new THREE.Scene(); // 定義在scene裏能看到什麼 var camera = new THREE.PerspectiveCamera(45,window.innerWidth / window.innerHeight,0.1, 1000); // 計算指定camera角度下scene的樣子--使用顯卡渲染 var renderer = new THREE.WebGLRenderer(); // 背景顏色 renderer.setClearColorHex(0xEEEEEE); // 背景大小 renderer.setSize(window.innerWidth, window.innerHeight);
二、添加座標軸htm
// 建立座標軸 var axes = new THREE.AxisHelper(20); scene.add(axes);
三、添加一個灰色的平面blog
// 建立平面 // 定義平面尺寸 -- 寬60,高20 var planeGeometry = new THREE.PlaneGeometry(60, 20); // 顏色 var planeMaterial = new THREE.MeshBasicMaterial({color: 0xcccccc}); // 合併尺寸和顏色 var plane = new THREE.Mesh(planeGeometry, planeMaterial); // 定義位置 // 繞着x軸旋轉90度 plane.rotation.x = -0.5*Math.PI; plane.position.x = 15; plane.position.y = 0; plane.position.z = 0; scene.add(plane);
四、添加一個正方體
// 建立方塊 var cubeGeometry = new THREE.CubeGeometry(4, 4, 4); var cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000, wireframe: true }); var cube = new THREE.Mesh(cubeGeometry, cubeMaterial); cube.position.x = -4; cube.position.y = 3; cube.position.z = 0; scene.add(cube);
五、添加一個球體
// 建立球體 var sphereGeometry = new THREE.SphereGeometry(4, 20, 20); var sphereMaterial = new THREE.MeshBasicMaterial({ color: 0x7777ff, wireframe: true }); var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial); sphere.position.x = 20; sphere.position.y = 4; sphere.position.z = 2; scene.add(sphere);
六、指定相機的位置和懸掛的角度
// 指定相機的位置,將其懸掛在場景上方 camera.position.x = -30; camera.position.y = 40; camera.position.z = 30; // 指向場景中心 camera.lookAt(scene.position);
七、講scene和camera掛載到html
// 掛載到html上 $("#WebGl-output").append(renderer.domElement); renderer.render(scene, camera);
結果如圖