下一步是將折射限定(Refraction Limit)設為10。10?為什么要設成10呢?因為這是允許光線發(fā)生折射次數(shù)的最大數(shù)值。舉一個例子,如果折射限定為10,就意味著,物體表面只能折射已被反射或折射(或者兩者都有)過9次或9次以下的光線,而對于已被反射或折射(或者兩者都有)過10次或10次以上的光線就不折射了。然而在大多數(shù)情況下,鏡子的折射限定至少是5,玻璃的至少是9。
好了,下面將反射限定(Reflection limit)設為5到6之間,那么,什么是反射限定?為什么要把它設為5到6之間呢?(圖6)
反射限定是允許光線發(fā)生反射的最大數(shù)值。例如,如果反射限定為4,也就是說,物體表面只能反射已被反射過3次或3次以下的光線,而對于已被反射過4次或4次以上的光線就不反射了。
圖6
主玻璃物體的材質
好,現(xiàn)在我們就開始主玻璃物體的材質的工作,我們需要用于透明的ramp,采樣工具(samplerInfo),用于反射的ramp,以及用于產(chǎn)生隨機反射圖案的貼圖。File是指帶有隨機圖案的TGA格式的文件。(圖7)
(圖7 點擊小圖看大圖)
Ramp1的作用:從samplerInfo1獲得表面上與攝影機法線方向相對應的每個點的facingRatio值(范圍是0至1之間),將此值與Ramp1(類型(Type)為V Ramp)的vCoord相連接,這樣每個facingRatio值就對應了一個Ramp1中的Selected Position值,通過調整Selected Position所對應的顏色,就可以使每個表面上與攝影機法線方向相對應的點有一個確定的顏色值。而Ramp1又與透明度相連接,所以,就可以通過調整 Ramp1的Selected Position及其相對應的顏色,來控制表面上與攝影機法線方向相對應的每個點的透明度。(圖8)
圖8
假設表面上的某一點通過samplerInfo1的采樣得到了一個facingRatio值為0.003(這個點的法線應該是與攝影機的方向幾乎垂直(比如攝影機視圖中一個球體邊緣上的點)),Ramp1中的Selected Position為0.005的位置的顏色是R 0.137/G 0.137/B 0.137,而0.005以下的位置其顏色均為R 0.137/G 0.137/B 0.137,所以表面上這個點的透明度為R 0.137/G 0.137/B 0.137。以此類推,表面上facingRatio值越大的點(即法線與攝影機方向越接近平行的點),其透明度越接近白色。當點的 facingRatio值大于等于0.61后,其透明度就為白色(因為上圖的白色的標記點的Selected Position為0.61)。
place2dTexture與Ramp1相連接,為最終的透明度(transparency)過濾表面的UV方向。
Ramp2 的作用:同Ramp1類似,只是連接到材質的反射率上。
EnvChrome1的作用:用來給Blinn材質反射增加格狀反射環(huán)境,如果你愿意,你也可以使用EnvShpere。
注意:如果你想得到更柔和反光,你也可以使用Phong,在這個例子里,我使用了有尖銳反射的Blinn。
反射體的材質
下一步,我們需要一個主玻璃材質的副本來為內反射面新建一個材質,對于這個內表面反射體的材質,你可以將Specular Color上連接的貼圖節(jié)點(file3)斷開,用一個單獨的顏色替代(在這里我使用了亮橙色)。(圖9)
圖9
這樣我們就有了3個材質:主玻璃材質,內反射面材質和液體材質。
好了,正如我在教程一開始就說的,這個盛著有色液體或者水的光亮的玻璃瓶包括3個反射區(qū)域,因此建模時也就包括3個表面:
紫色=外表面
白色=內表面為
綠色=液體表面
重要的是:要在物體的屬性編輯器中的Render Stats項里將玻璃內表面和水表面的Cast Shadows和Receive Shadows關掉,因為它們只會接收或產(chǎn)生反射和折射。(圖10)
小技巧:
1.在給玻璃瓶和液體建模時,可以復制一份主玻璃物體,并使用Isoparm(分離(Detach)表面)來創(chuàng)建液體,然后使用Planar制作液體的上表面。
2.你可以使用Layered Shader或者單獨的透明材質來制作香水標志。
3.在玻璃瓶的周圍放置更多東西以增強反射和折射效果。
現(xiàn)在指定材質
外表面使用主玻璃材質
內表面使用反射體材質
液體/水表面使用液體材質
最后在渲染之前檢查一下:確保在Render Globals中打開Raytracing模式,然后將Quality設置為Production Quality。(圖11)
圖11