在 3D 的世界中,所有物件都是由 Geometry(幾何體)+ Material(材質) 所組成。
材質屬性有非常多可控制的項目如常見的
屬性 | 簡介 |
---|---|
Opacity 透明度 | 定義物體透明程度,0.0 為完全透明,1.0 表示不透明,若要設定透明度需先設定 transparent : true |
Visible 是否可見 | 定義物體是否可見 |
Color 顏色 | 定義材質顏色 |
Map 貼圖 | 可以自行載入圖片設定到幾何體上 |
Side 側面 | 可以定義哪一面使用材質,默認為 THREE.FrontSide,也可設定為 THREE.BackSide and THREE.DoubleSide. |
在官網中可以看到 three.js 包含了以下幾種材質
種類 | 簡介 |
---|---|
MeshBasic 網格基礎材質 | 以簡單的陰影方式繪製而成的方法,不會受到燈光的影響 |
MeshDepth 網格深度材質 | 由物體到相機的距離決定外觀,最靠近是白色,最遠是黑色 |
MeshLambertMaterial 網格朗伯特材質 | 用於無光澤表面的材質,並會受燈光影響,適合用於木材或石頭等黯淡並無光澤的表面 |
Matcap 網格材質捕捉 | 在沒有燈光的情境下模擬物體被燈光照射的效果,因此不受燈光影響 |
MeshNormal 網格法向量 | 將法向量映射到RGB顏色的材質 |
MeshPhong 網格馮式材質 | 用於有光澤的表面,並會受燈光影響 |
MeshStandard 網格標準材質 | 基於 Physically based rendering (PBR )計算方式,不以近似值呈現光與材質的交互作用,提供更準確的結果,但計算成本也相對較高 |
MeshPhysical 網格物理材質 | MeshStandard 的延伸,多了透明塗層、物體透明度、反射率 |
MeshToon 網格卡通材質 | 實現卡通著色的材料 |
https://threejs.org/docs/#api/en/materials/Material