日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游戏中的实时光线追踪技术与技巧

發布時間:2024/8/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏中的实时光线追踪技术与技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


提到游戲使用的實時渲染,很多人都會覺得光柵化渲染是唯一的方法,而想要在游戲中使用實時的光線追蹤,似乎還是遙遠的夢想。

雖然整體的光線追蹤實時渲染架構以及相關硬件還在試驗階段,但從2016GDC的技術展示來看,游戲開發者在實踐中已經找到了不少能利用現有架構實現光線追蹤的小技巧,光線追蹤技術已經悄悄地開始在游戲開發中發揮作用了。

光線追蹤的優點自不用說,容易理解、實現簡單、支持體積渲染,況且還有shadertoy上那么多使用光線追蹤制作的眩目效果。但問題是光線追蹤和現有的游戲引擎架構不統一,而且實時運行的效率不高,如果要做體積渲染還存在如何存儲和采樣體積數據的問題。

下面的內容會介紹一些在現有游戲引擎里針對這些問題解決方案。

減少計算量

首先光線追蹤在實時運行時最大的問題是對PixelShader的壓力太大,shadertoy中很多代碼都在PixelShader中循環幾十上百次,顯然在真實開發中很難使用這樣的代碼。

這里介紹一種使用VertexShader進行光線追蹤的思路,以制作實時溶球作為例子。

直接實現的思路是建立溶球的Distance Field,在PixelShader中從視點開始推進光線,循環直到Distance Field為0,達到溶球表面,然后計算反射折射等。這樣的方法,在PixelShader中至少需要十幾次循環才能trace到溶球表面。
?


改進思路是將光線追蹤代碼移到VertexShader中,在Mesh的每個頂點進行光線追蹤計算,按照光線追蹤的結果進行頂點變形。如圖中,使用一個球形的Mesh做頂點變形,每個頂點的位置按照光線追蹤的結果向內收縮,直到溶球表面。
?


如果選擇合適的球形Mesh大小和位置,收縮的步驟可以小到三次以內。這個方法同時減少了光線追蹤的循環次數,也減輕了PixelShader的壓力。完全可以在移動平臺上運行。
?

實時光線追蹤的溶球,左:添加反射,右:添加折射和深度


另一種減少計算量的方法就是Dithering,在獨立游戲Inside中的體積光渲染就使用了這種的技術。

在我的另外一篇游戲開發相關實時渲染技術之體積光描述過高質量的體積光渲染應該使用光線追蹤的方法。問題在于優質的體積渲染需要的循環次數可能會達到一百次以上,如果循環次數降低到一定程度會因為采樣數不足,會造成條紋狀瑕疵。

這里的改進思路是,在光線追蹤的起點添加隨機噪音,這樣QQ靚號轉讓平臺條紋狀瑕疵會變成更加隨機的噪點。之后再添加一層模糊或者是抗鋸齒,這樣整體的瑕疵感就會明顯減少。

左:條紋狀瑕疵,中:隨機噪點,右:抗鋸齒模糊


這種方法的缺點就是渲染的對象會顯得比較模糊,不過用于體積光這種本身就不是很清晰的渲染對象倒是很適合。

體積貼圖

光線追蹤重要的應用之一就是體積渲染。shadertoy中的體積渲染大多是使用隱式參數方程和實時算法生成噪音來制造體積的Distance Field。這種方法對于不熟悉數學的人來說難度有點大,也不適合美術人員創作。所以體積渲染時最常用的還是用Houdini等軟件生成體積貼圖。

目前主流游戲引擎還沒有全面支持3DTexture,所以我們要用體積切片的方法模擬3DTexture。Houdini和Blender都有方法渲染體積切片。渲染好的切片按照順序組成一張平鋪貼圖。
?


在采樣的時候,先確定采樣點的所處z軸位置上下兩張貼圖,在uv位置采樣兩次,然后通過z軸lerp兩個采樣數據,就可以得到采樣點的密度數據了。

引擎集成

將光線追蹤的體積渲染集成到游戲引擎中會有兩個問題。

第一是作為體積渲染的載體Mesh。片面Mesh肯定是不合適的,因為轉一個角度可能就看不到了,應該選擇閉合的Mesh。這個Mesh應該仿照天空球方法,法線向內,因為如果法線向外,進入Mesh內部就沒辦法顯示了。

第二是和場景現有物體的遮擋問題。解決方案是獲得場景的深度信息,做光線追蹤的時候反過來從場景的深度位置向視點進行追蹤,這樣就能完美實現遮擋了。如果做正向光線追蹤就需要在每次循環的時候檢查一下深度信息,做無謂的消耗。
?

圖:使用反向法線和場景深度信息制作的體積渲染 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的游戏中的实时光线追踪技术与技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品视频一区二区 | 日韩毛片无码永久免费看 | 激情另类视频 | 亚洲黄在线 | 欧美视频一区二区三区在线观看 | 国产精品日韩欧美 | 欧美三级午夜理伦三级中视频 | 操夜夜| 无码人妻一区二区三区线 | 国产三级全黄 | 男女草逼| 国产综合区 | 夫妻性生活黄色片 | 国产1区二区 | 中文字幕无码乱码人妻日韩精品 | 天天爱天天射 | 国产精品视频www | 国产女主播视频 | 免费的三级网站 | 香蕉视频网站入口 | 夜夜cao| 中国黄色1级片 | 中国丰满熟妇xxxx性 | 神马久久久久久久久久久 | 久久午夜无码鲁丝片午夜精品 | 亚洲综合激情五月久久 | 91av在| 亚洲精品一二区 | 人人看超碰 | free女性xx性老大太 | 日韩色影院 | 成人毛片一区二区三区 | 秋葵视频污 | 啦啦啦免费高清视频在线观看 | 夜夜操网| 亚洲一区二区中文字幕 | 新呦u视频一区二区 | 欧美天堂 | 拔擦8x成人一区二区三区 | 精品xxxx| 先锋影音一区二区 | 久久精品在线观看 | 手机看黄色 | 亚洲高清在线一区 | 欧美视频第二页 | 亚洲欧美日韩精品久久亚洲区 | 麻豆成人免费视频 | 玖玖热视频| xxxx色| 欧美激情小视频 | 亚洲精品免费视频 | 国产极品一区二区 | 肉视频在线观看 | 日日夜夜91 | 春色网站 | 九九热视频在线播放 | 色婷婷亚洲一区二区三区 | 无码视频一区二区三区 | 毛片导航 | 黄色片在线 | 四季av中文字幕一区 | 成人动漫免费观看 | 免费黄色短片 | 久草新在线 | 少妇无码一区二区三区 | 深夜福利网站在线观看 | 女人的天堂网站 | 一道本在线播放 | 精品国产一区二区三区四 | 成人在线观看亚洲 | 中文字幕欧美在线观看 | 我要看一级黄色片 | 51精产品一区一区三区 | 综合网天天 | 黄色一级视频免费观看 | 久久中文字幕人妻 | 高清欧美精品xxxxx在线看 | 99久久国产热无码精品免费 | 欧美日本在线看 | 日韩av一区二区三区在线 | 中文精品无码中文字幕无码专区 | 秋霞欧美一区二区三区视频免费 | 国产成人精品女人久久久 | 亚洲风情av | 国产网址在线观看 | 亚洲福利视频一区 | 一区二区国产视频 | 香蕉久久久久久 | 日本美女黄色 | 日韩中文字幕第一页 | 岛国av在线免费观看 | 猛男大粗猛爽h男人味 | julia一区二区三区中文字幕 | 午夜成年人视频 | 九九视频在线播放 | 射进来av影视 | 亚洲国产一二三区 | 美女张开腿让人桶 | 国产一区二区三区福利 |