three.js學習:點光源+動畫的實現
阿新 • • 發佈:2019-02-09
color 設置 cti 參數 場景 posit width ima bsp
與前幾個教程類似,場景和相機等設置就不再重復聲明了。這裏只列出新學的內容。
1、圓柱體(圓錐體)的初始化
function initObject() { var geometry = new THREE.CylinderGeometry(0, 10, 50); var material = new THREE.MeshLambertMaterial({ color: 0x483D8B }); cylinder = new THREE.Mesh(geometry, material); cylinder.rotation.x = 0.15 * Math.PI; scene.add(cylinder); }
new THREE.CylinderGeometry的三個參數含義依次為:圓柱體上平面的圓的半徑、圓柱體下平面的圓的半徑、圓柱體的長。
2、點光源
var light; function initLight() { light = new THREE.PointLight(0xffffff); light.position.set(0, 0, 200); scene.add(light); }
點光源的使用可以使得3D圖形具有立體感,主要體現在陰影的效果方面,如下圖:
3、動畫效果的實現
function animation3D() { cylinder.position.x-= 0.2; renderer.render(scene, camera); requestAnimationFrame(animation3D); }
修改相機的位置後,需要重新渲染,否則不生效。不斷循環修改相機的位置,即可形成動畫的效果。
three.js學習:點光源+動畫的實現