地平線:黎明時分中的雲渲染技術
最簡單的辦法是採用raymarching,噪聲可以簡單的採用fbm,但是程式感嚴重
兩種噪聲疊加,Perlin-Worley noise,連續感減弱不少
一張基礎的3d紋理,控制大體形狀,一個通道存Perlin - Worley noise,其他三個存不同頻率的Worley noise
一張細節3d紋理,不同頻率的Worley noise
一張2d紋理,curl noise,一般用於流體模擬,可以對雲進行distort,增加湍流感
在高度上使用紋理控制密度,可以表現層雲,積雲,積雨雲
此外,在高度上整體設定一個0-1的漸變,因為低空沒雲
在雲的邊界處減去第二個3d紋理,能夠得到侵蝕效果
小貼士,如果你把基礎雲層的Worley noise倒置,會得到一些不錯的形狀。
使用2d紋理去distort第二個3d紋理,可以模擬大氣湍流造成的旋渦扭曲
用一張圖去整體上控制雲層,能夠模擬不同天氣下的表現,r通道表示密度,g通道表示降雨量,b為雲形。天氣系統通過在遊戲過程中進行的模擬來調節這些通道。積雨雲直接在頭頂(白色),遠處是規則的積雲。我們可以讓藝術家去控制這些模擬。
預設天氣是積雲和層雲的組合。大部分是層雲。
降水量達到0.7將會產生積雲。
使用天氣系統來確保地平線上的雲層總是有趣的,並在山上分開。
從15000米的距離開始…在玩家周圍35000米半徑範圍內繪製雲景
渲染採用Beer’s law
前向散射機率更大,使用henyey greenstein function來矯正
此外,雲層厚的地方in-scattered light更多,導致邊緣會暗一些
加入powder函式,兩個公式疊加去模擬這個效果
注意這個效果和方向光方向及視角方向有關
在有雨的地方增加光吸收率,來使其變暗
最終公式
地球是圓的,所以遠處地平線會和雲接在一起
1500米到4000米之間是體積雲
海拔4000米以上是alto和捲雲。上層雲不是很厚,可以通過動畫紋理模擬
由於存在基礎噪聲和細節噪聲,只有在基礎噪聲返回非0時才需要檢測細節噪聲
為了不"錯過",切換到高細節樣本之前要向後退一步
當到達alpha為1時,也就是到最高點了,停止Raymarching
如果連續返回非0,切換到基礎噪聲,直到再次返回0
取樣點數量和視角相關
注意密度會隨高度衰減,也就是上面提到的0-1漸變
但是這樣還不夠
在朝向光的圓錐上取樣6個點模擬陰影,最後一點距離要遠一點
為了提高取樣的效能,當alpha達到0.3時,切換到簡單版本的著色器版本進行取樣。這使著色器速度提高了2倍
6點取樣在低空的貢獻大於比爾定律,而隨著高度上升,又會回到標準的體渲染方式
最後一步,取樣最高層的二維紋理
以上是高空雲層的幾種形態
現實中,不同頻率的光線在雲中混合,會產生非常美麗的色彩效果。所以我們要根據以下模型為雲上色:
- 環境光貢獻隨高度增加而增加
- 直接照明將以陽光顏色為主
- 大氣散射會隨高度增加去替代雲層顏色
優化:每幀渲染1/4
前一幀要reproject,如果是邊緣,無法reproject,則從一個低解析度buffer上取樣
在half res下渲染,最後upscal
相關閱讀:
作者:風和雨林
相關文章
- 視覺爆炸的藝術 | 《地平線:黎明時分》藝術賞析視覺
- 資料加密新技術-實時雲渲染技術應用加密
- 實時雲渲染關鍵技術-低延遲詳解
- 低延時音影片技術在OPPO雲渲染場景的應用
- 大規模即時雲渲染技術,追求體驗與成本的最佳均衡
- 開發者談《地平線:零之黎明》的遊戲音樂幕後遊戲
- unity程式使用雲渲染技術是否要修改?Unity
- 移動 VR 開發時要避免的 PC 渲染技術VR
- 雲渲染技術的兩種場景還在傻傻分不清?
- 《孤島驚魂5》中的地形渲染技術-網格生成
- 【技術乾貨+限時活動】openstack原理及在華為雲中的應用
- OpenGL的渲染成紋理技術(轉)
- 【併發技術02】傳統執行緒技術中的定時器技術執行緒定時器
- vue:服務端渲染技術Vue服務端
- Vue 服務端渲染技術Vue服務端
- 關於雲流化系統-實時雲渲染延時性的討論
- 雲渲染技術會給BIM雲端協作帶來哪些改變?
- delphi中的時間操作技術(1) (轉)
- delphi中的時間操作技術(2) (轉)
- 實時渲染技術在數字孿生專案中應用,對顯示卡什麼要求?
- 關於遊戲中的實時渲染遊戲
- 3DCAT實時渲染雲在虛擬展會中的應用3D
- 同時渲染兩個世界:恐怖遊戲《靈媒》背後的尖端技術遊戲
- 雲流化技術在汽車行業中的應用行業
- 剖析Unreal Engine超真實人類的渲染技術Part 2 - 眼球渲染Unreal
- 分表技術
- 騰訊光子《黎明覺醒》技術美術負責人:如何製作超真實的開放世界?
- 雲原生技術
- D3D中的一項高階技術---渲染到紋理(轉)3D
- 對於雲技術的理解
- 基於雲技術的域名解析系統研究:雲解析技術的應用(國科雲)
- 實時渲染技術在VR/AR眼鏡中檢視CATIA3D模型VR3D模型
- Cube 技術解讀 | Cube 渲染設計的前世今生
- 雲技術是軟體技術,並非硬體技術
- 技術社群中的非技術話題
- 中文分詞技術中文分詞
- Java併發基礎02:傳統執行緒技術中的定時器技術Java執行緒定時器
- 【技術乾貨】時速雲企業級容器PaaS技術沙龍 第八期