一.matcap材質
這個材質不會受到光照影響,但是如果圖片本身有光就可以一直渲染這個圖片本來的樣子,用來將一個圖片紋理渲染到物體上的材質
程式碼實現
載入模型後,開啟紋理渲染,並把它的材質變為這個材質,並且貼上紋理圖
二.Lambert材質
Lambert網格材質是Three.js中最基本和常用的材質之一。本文將詳細介紹Lambert網格材質的定義、特點、應用以及使用方法。
簡單來說就是這個材質當你設定好各種貼圖之後 實現凹凸不平地面等是比較好的
設定好Lambert材質後,打一個光進來,會發現是漫反射啞光的反射類似於
三.phong材質
PHONG材質是Three.js中常用的一種材質,它是一種基於Phong光照模型的材質,可以用於實現高光和陰影效果。Phong光照模型是一種基於漫反射、鏡面反射和環境反射的光照模型,可以用於模擬真實物體的光照效果。
比如塗了漆面的木材,光滑的材質
設定為phone材質,在設定高光顏色就可以形成對點光源的反射
設定好環境貼圖後
程式碼操作
建立光源,把一個平面設定成phone材質
新增環境貼圖
光滑的反射就出來了
1.實現玻璃水晶效果
載入模型,設定環境光,把這個模型改為phone材質,並且設定兩個折射率
envmap是環境貼圖
如果想要折射效果還需要把環境貼圖改為折射球形,上下不一樣注意
當把上面的反射變為折射後,這裡的反射率也變為了折射率
四.基礎材質詳解
1.標準網格材質
在 Three.js 中,MeshBasicMaterial 是一個用於建立基本材質的類。它能夠讓您快速建立不需要光照效果的幾何體,並且配置非常簡單,可以使用顏色、透明度和紋理等屬性來自定義材質。MeshBasicMaterial 在 Three.js 中非常重要,因為它是建立簡單3D圖形的常用材質之一,而且渲染速度很快,能夠讓您的應用程式保持流暢的互動體驗。如果您想要建立更復雜的3D圖形,瞭解 MeshBasicMaterial 是非常有用的,因為它是其他更復雜材質的基礎。
注意:標準網格材質需要設定環境貼圖
這裡做一個記錄,系統性的介紹一下各種貼圖的作用,在之前的材質也有各種貼圖,但是標準是最齊全的能夠達到漫反射也能鏡反射
載入一個劍的模型
先上環境貼圖
粗糙度為1,漫反射
粗糙度為0,鏡反射
金屬度為0
金屬度為1
還原預設,先貼上貼圖
金屬度貼圖和金屬度是一個相乘的關係,越大就越金屬
法線貼圖實現凹凸不平的效果
凹凸貼圖同理,兩個只能設定一個
置換貼圖可以讓頂點有一個起伏的效果,上面是看起來,這個是真起來
粗糙度貼圖可以讓其光滑
注意:真實環境只需要匯入進來就是這個樣子,不需要一個一個貼圖,只是有時候改可以瞭解
程式碼實現
建立環境貼圖,背景一定要新增
2.物理網格材質
物理材質就是能夠在剛才標準材質的基礎上新增更多的功能
透光率
當粗糙度為0,很光滑的時候就完全透明瞭
厚度
折射率,反射率
衰減顏色,距離
衰減距離越小,就越快到達衰減顏色
偏紅色
注意:衰減顏色最好都設定1以下不要整的
厚度貼圖
呈現一個不均勻的厚度
清漆效果與清漆透明度
單純設定一個清漆強度為1後
清漆光滑度,1漫反射,0鏡反射
map就是透過紋理決定哪些地方要清漆哪些地方不要
中間光滑,周圍不清漆
注意此時應該粗糙度為1,到時候紋理會乘以粗糙度,如果為0始終 都是光滑
法線貼圖
3. 布料織物材料光澤效果
建立一個物理材質球體
設定光澤及顏色後
光澤粗糙程度
設定紋理貼圖
4.肥皂泡、油滴、蝴蝶翅膀等薄膜的虹彩效應
反射出各種顏色的材質
這種效果實際是有兩層組成,外面一層負責反射折射
建立一個基本球體,有粗糙度,透明度,還有一層厚度
設定彩虹色,反射率和彩虹色折射率
薄膜厚度範圍
預設
設定薄膜厚度貼圖
5.清除物體_幾何體_材質_紋理保證效能和記憶體不洩漏
比如這裡不斷建立一個隨機材質,隨機幾何體的物體,不斷回撥自身
此時cpu使用率和記憶體大小都在不斷增加,到一定程度就會網頁崩潰
要最佳化這種情況就是
每一幀渲染完畢,render.render就是渲染的語句,就去清除掉物體幾何體等
6.巧用物理發光屬性打造逼真IPHONE產品
在很多建模軟體直接匯出來給到3D匯入會發現有些屬性發光等會缺失,這是因為兩者有些內容並不兼用,所以這個時候通常是載入到three的編輯器裡面,進行編輯之後,滿意之後再匯出到three裡面進行模型載入
剛載入進來
找到螢幕材質,設定好之後匯出
載入進來就行了
7.修改模型光澤效果打造逼真室內場景
剛匯入進來
設定光澤光澤顏色
毛絨效果,法線貼圖
控制角度
如果讓使用者隨意去轉動很容易穿幫
首先設定起始位置
可以新增軌道控制器來輔助檢視
設定相機初始位置,以及一開始看向的角度,x軸是橫向看多寬,y是看多高,要設定lookat一開始看的角度還得配合控制器
垂直的最小角度是網上旋轉,最大角度是往下旋轉
水平左右的角度