基於物理的渲染系統用雙向反射分布函式(brdf)來描述物體表面的反射表現。brdf考慮物體表面各個方向的入射光(環境光)而不是僅僅計算某單一方向的入射光。近年的大量相關研究投入到如何實現環境光照效果與硬體渲染相結合。然而,其大部分的實現過於複雜,而且對硬體的要求過高。另一方面,眾所周知,在brdf實現的主要特性中,環境光照效果並不要求嚴格的計算的精確性。
所以,後來發展出大量的近似處理技巧來得到可以接受的近似環境光照效果。本文中,我們將介紹一種非常簡單的利用已有功能的實現方式。
環境光貼圖(em)可能是目前模擬環境光照的最簡單的方式了。它僅僅是由一些預計算的光照貼圖組成。目前最普及的是立方體環境光貼圖。預模糊的環境光貼圖可以很好的模擬對精確性要求不高的模糊環境光照效果,而且如果環境光貼圖用mipmap格式儲存,那不同的mipmap級別就代表了不同精度的貼圖資訊,可以直接拿來用。通過控制環境光貼圖的lod(level of detail)來近似實現物體表面高亮到模糊的表面反射效果。
圖中所示的是不同環境光照貼圖lod值的茶壺,左上角為原始貼圖,後面lod值依次變大,很好的表現出茶壺表面的光澤度在依次變低的效果。
附圖:結合上述原理實現的不同lod值,不同反射度的房間地面效果:地板和瓷磚
參考文章:
基本光照模型簡單實現
lambert光照模型,根據光照向量與頂點法線的夾角來確定光照強度 upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader james lambert subshader cgprogram pragma...
HLSL實現環境光光照模型
環境光光照模型公式 i a intensity 環境光強度 a color 環境光顏色 amaterial 物體對環境光各顏色成分的反射係數 如果場景中包含有漫反射和鏡面反射光,則公式為 color aintensity a color diffuse specular diffuse 和specu...
Android進行高斯模糊的簡單實現
因為專案上有需求,將客人態的背景設定成使用者頭像的毛玻璃的效果 這句話怎麼這麼繞口,還是直接看吧 背景就是使用者的頭像 以前沒做過這種功能,所以上網查了一下,大牛們調研了很多種實現方法,因為需求比較簡單,對效能的要求沒有那麼苛刻,所以下面我將用最簡單的發來實現。思路是利用現有 android 提供的...