記錄一下Unity3D 關於lightmap,mipMap,normalmap,cubemap,以及Reflection Probe
————–lightMap
說到LightMap就涉及到一個光源型別的知識,光源型別有point Light,spot Light,direction Light,area Light,但是經常會看到一種光叫 indirection Light (間接光),在我理解看到,間接光其實就是光遇到物體後能發生反射效果,在unity中的光預設都不為間接光。我們可以使用lightMap去烘焙一個物體使射到它身上的光能夠產生反射效果,
那些有顏色的光其實就是一種貼圖(LightMap)經過一定的計算貼在那個位置而已。但是它有一個缺點:烘焙後的光影效果就不會在改變了。所以它又出了一種新技術叫做 precomputer Realtime GI(預計算)。
it doesn’t just precompute how light bounces in the scene at the time it is built, but rather it precomputes all possible light bounces and encodes this information for use at runtime
與之前的 烘焙來說, 它就是動態的,它會計算所有可能的反射點然後把資訊儲存到一個集合中,因此它的效能消耗也是非常大的,手遊基本帶不動。
————–mipMap
mipMap從理解上來說就簡單多了,它和LOD是很相似,LOD(Level of Detail)優化效能的技術,通過物體離相機的距離來渲染不同的Mesh以達到網格面數上的優化,LOD是在網格面數上做優化, 而mipMap是在貼圖上做優化,不同距離使用不同畫素的貼圖來渲染以達到空間換時間。
———–normalMap
一張用於shader中的貼圖(法線貼圖),在2D貼圖上加上一張法線貼圖可以讓整個模型變得更具有立體感。
———–cubeMap
立方體貼圖,常用於天空盒的製作和環境的反射,通過六個面來描述周圍的環境。
使用unity自帶shader中的 skybox/6 sided 直接拖入六張貼圖 或者 skybox/cubemap建立一個cubemap貼圖(inspector/create/legacy)然後將cubemap拖入到shader面板上。
Preferred way of creating cubemaps is importing them from specially laid out textures. Select Cubemap texture import type and Unity should do the rest. Several commonly used cubemap layouts are supported (and in most cases detected automatically).
這裡寫連結內容
官方上還提供了一種方式來建立cubeMap,import texture, 美術做到資源然後匯入資源後會自動在texture type 中顯示cubeMap型別。
在我理解來看,unity反射的原理就是通過shader去獲取到周圍環境的點返回一個顏色值然後渲染到帶制定shader材質的模型上,這需要自己去寫一個shader。
reflection Probe是一個反射探頭,它也是用於環境反射,但是他不需要我們手動寫shader。具體原理:給物體加上該元件後,它會自動或者手動烘焙一塊指定的區域,他會把它從環境中因反射接受到的資訊存到一個cubeMap中,然後再把cubemap中的資料給烘焙過的static的物體。