問題:
1、性能
算法的遞歸性質和大數目的追蹤光線,渲染過程可能持續數小時。80-90%的渲染時間花費在計算光線和物體交點上。
2、走樣
3、尖銳的陰影
基本的光線追蹤算法只能得到尖銳的陰影(因為模擬的是點光源)。
4、局部光照和著色
算法只追蹤少數目的光線,只有四種類型的光線被考慮在內,物體之間的漫反射光沒有被考慮在內,即算法并不包括全局光照。
解決方案:
1、性能
-
使用更多或者更好的硬件
-
大規模并行計算。每一個光線都相互獨立。將圖像分割,分配在多核上或者分布式網絡上;或者分配在多個線程上。
-
限制交點檢測的數目。使用包圍盒的層次關系。快速判斷光線是否和一組物體相交。物體被分組在封閉的包圍盒中。利用空間細分技術:octree,BSP,grid.
-
優化交點檢測
-
限制追蹤光線的數目,確定最大的遞歸層數。根據光線對當前像素點貢獻值大小來限制遞歸深度。一個閾值用來確定后續光線由于對像素點貢獻太小而不會被追蹤。
2、走樣
使用超采樣(super sampling)、抗鋸齒(antialiasing)、jittering
-
追蹤額外的主光線并取平均值。即超采樣,相對于每一個像素點取一條光線,你可以取特定數目的光線。每一個像素被分為亞像素,對每一個亞像素發射一條光線。當所有的亞像素點都處理完畢,對亞像素點的顏色值取平均值,并將其賦值給該像素點。這種方法大大增加了渲染時間。
-
自適應抗鋸齒。在顏色劇烈變化的地方使用追蹤的主光線,顏色變化不大的地方使用最少的主光線。
-
隨機抗鋸齒。隨機取樣代替常規取樣。
3、尖銳的陰影
原因:使用點光源、每個交點僅僅對應一條陰影光線。
-
區域光(area light)。使用一系列點光源來模擬區域光源。對于每一個交點,需要和點光源數目一樣多的追蹤光線。
-
Monte Carlo光線追蹤法。使用隨機超采樣,光源建模成球形光源,陰影光線指向代表光源的球上面的點。陰影光線顏色的平均值決定該交點最終的顏色值。
4、全局光照
依舊可以使用Monte Carlo法。使用Radiosity算法。
-
大數據
+關注
關注
64文章
8908瀏覽量
137794 -
光線追蹤
+關注
關注
0文章
183瀏覽量
21540
原文標題:舉例幾個光線追蹤的問題和解決方案
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于光線追蹤實現反射折射效果
![基于<b class='flag-5'>光線</b><b class='flag-5'>追蹤</b>實現反射折射效果](https://file.elecfans.com/web2/M00/4E/DC/poYBAGLCjeiALm_WAAAYmfR7Qec474.png)
基于光線追蹤的渲染算法實現
![基于<b class='flag-5'>光線</b><b class='flag-5'>追蹤</b>的渲染算法實現](https://file.elecfans.com/web2/M00/4E/DC/poYBAGLCjeiALm_WAAAYmfR7Qec474.png)
Python遞歸的經典案例
AMD光線追蹤專家加盟高通,共筑Adreno GPU性能新高度
遞歸神經網絡的實現方法
遞歸神經網絡與循環神經網絡一樣嗎
遞歸神經網絡主要應用于哪種類型數據
遞歸神經網絡是循環神經網絡嗎
MediaTek攜手望塵科技通過移動端光線追蹤技術打造沉浸體育游戲體驗
MediaTek攜手望塵科技共同推進移動端光線追蹤技術在手游中的應用落地
![MediaTek攜手望塵科技共同推進移動端<b class='flag-5'>光線</b><b class='flag-5'>追蹤</b>技術在手游中的應用落地](https://file1.elecfans.com/web2/M00/CC/4A/wKgZomYggD-Ab1_MAAAuRo1TEuc708.png)
評論