1. 程式人生 > >three.js學習:點光源+動畫的實現

three.js學習:點光源+動畫的實現

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學習:點光源+動畫的實現