Three.js 開發機房(二)


這一節先不進行后續,我們需要對Three.js的一些屬性進行了解。

1、相機

  常用相機除了前一篇博客用到的PerspectiveCamera相機(透視相機), 還有一款名叫正交相機;

  【a】透視相機:

    類名:THREE.PerspectiveCamera ,重要參數:fov, near, far,aspect;

    Fov – 相機的視錐體的垂直視野角
    Near – 相機視錐體的近平面
    Far – 相機視錐體的遠平面
    Aspect – 相機視錐體的長寬比

  

  

(圖片來自網絡)

如上圖,當我們設置相機的屬性,再給相機一個固定的坐標(position)和鏡頭朝向(lookAt), 就可以得到一個明確的視覺空間,而出現在這個視覺空間的物體就會被渲染出來,就像我們的眼睛,在我們所處的世界中我們的眼睛會有一個相對於世界已知的點,還有面對的方向,這樣我們的視線就會構成一個視覺范圍,出現在這個視覺范圍的物體就會被我們看見,而被我們看見的物體是已經存在的,不會因為我們看或者不看而存在或者毀滅(我咋感覺我開始辨析唯物主義了呢),同理,Three.js通過構建模型在scene中將這個模型渲染出來,不管我們的camear的方向和位置,這個已經渲染好的模型永遠不會改變(除非認為修改這個模型的position,手動狗頭)。

  【b】正交相機

    類名:THREE.OrthographicCamera,重要參數:left : Number, right : Number, top : Number, bottom : Number, near : Number, far : Number 

    left - 相機視錐體左平面。
    right - 相機平截頭體右平面。
    top - 相機平截頭體頂部平面。
    bottom - 相機平截頭體底部平面。
    near - 近平面距離。
    far - 遠平面距離。

    在正交投影模式下,無論距離相機(需要設置position和lookAt)的距離如何,渲染圖像中的對象大小都保持不變。

(圖片來自網絡)

使用方法:

var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
camear.position.set(100, 100, 100);
cameat.lookAt(0, 0, 0);
scene.add( camera );

2、燈光

  【a】環境光

    類名:THREE.AmbientLight(hex),參數:環境光顏色(注意是16進制),

    這款光線不能直接產生影子,一般用作其他影子類的基類

  【b】平行光

    類名:THREE.DirectionalLight(hex),參數:平行光顏色(16進制),平行光我們可以看做太陽光。

    DirectionalLightShadow :與其他陰影類不同,它使用OrthographicCamera來計算陰影,而不是PerspectiveCamera這是因為來自DirectionalLight的光線 是平行的

  【c】點光源

    類名:THREE.PointLight(hex, intensity, distance),參數:hex-點光源顏色,intensity-點光源強度(缺省為1,即100%,為最強),distance-光源能照到的最遠距離(缺省為0)

    點光源顧名思義就像燈泡類似的光源,距離燈泡近的地方光線強,距離遠的地方光線弱

    從所有方向上的單個點發出的光。一個常見的用例是復制裸燈泡發出的光。

    設置屬性 castShadow = true  開啟陰影

  【d】聚光燈

    類名:THREE.spotLight(),參數:color, intensity, distance, angle, penumbra, decay

        color(顏色)- (可選)十六進制顏色的光。默認值為0xffffff(白色)。
        intensity(強度)- (可選)燈光強度/強度的數值。默認值為1.
        distance(距離) - 燈光的最大范圍。默認值為0(無限制)。
        angle(角度) - 從其上限為Math.PI / 2的方向的最大光散射角。
        penumbra(半影) - 由於半影而衰減的聚光錐的百分比。取值介於0和1之間。默認值為零。
        decay(衰變) - 光線沿光線距離變暗的量。

  這種光從一個方向的一個點發出,沿着一個圓錐體,它的尺寸越大,離它得到的光越遠。

  和點光源類似設置屬性 castShadow = true  開啟陰影

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM