999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于流動圖與時間上升頻的實時云層移動研究

2023-08-15 02:02:06李順新
計算機技術與發展 2023年8期
關鍵詞:效果方法

陳 燁,李順新,2,3

(1.武漢科技大學 計算機科學與技術學院,湖北 武漢 430065;2.湖北智能信息處理與實時工業系統重點實驗室,湖北 武漢 430065;3.武漢科技大學 大數據科學與工程研究院,湖北 武漢 430065)

0 引 言

目前,在視頻游戲以及可交互模擬應用中,云層渲染技術的應用越來越普遍。CryTek工作室[1]在2006年對云霧進行了數學建模的分析,近幾年許多廠商也據此提出了基于頂點網格的形體建模以及基于點云或噪聲貼圖建模方式等其他體積云以及體積霧的解決方案,然后通過體素渲染[2]或光線步進的渲染方式以及基于物理的路徑追蹤方式進行渲染。其中,光線步進相較于體素渲染及路徑追蹤實現簡單且開銷較小,更適合渲染作為實時應用中遠景的云層。

云層移動動畫方面,基于物理的實現是通過模擬大氣溫度以及壓強等屬性變化來模擬真實的云層移動過程[3],但這種方法不適合對性能要求較高的實時應用如游戲中。地平線游戲制作組[4-5]的解決方案是讓光線步進生成云層隨高度偏移世界坐標,并且向上移動云層模擬云層的浮動效果,這種方法渲染出的云層效果與細節不夠優秀但足夠高效。龔昱寧等[6]在此基礎上做出了改進,提出可控域扭曲建模云層來增加移動細節并使云層擁有更多的扭曲效果,這種方法本質是修改用于計算云層密度信息的噪聲,在云層移動時依舊不會表現出向前形變的效果。

針對上述問題,該文在地平線組方案的基礎上做出一些改進。為了讓云層在移動時表現出符合風向的動畫效果,提出用流動圖來豎向偏移云層采樣點的算法,整合了現有的云層渲染算法以及渲染提速算法,優化了地平線制作組方案的動畫效果,增加了更真實以及細節更加豐富的前向翻騰效果。

1 相關工作

為了模擬更加真實的天空,云層渲染被廣泛研究,并且不斷有許多新的想法和突破。對云層模擬一般分成三個方面:云層建模、云層光照、動畫模擬[7]。該文主要討論云層建模以及動畫模擬中的云層移動。

1.1 云層建模

相較于非真實感強烈的天空盒或廣告牌的云層建模方法,游戲盜賊之海開發團隊[8]使用頂點網格和噪聲渲染云的基礎形狀。這種使用幾何形體的渲染方法需要手動放置每一朵云,不僅不能很好地表現出云層的流動效果,還增加了顯存和存儲空間的占用。另一種常見的云層建模方法稱為點云,點云的核心思想是將云看成多個單位諸如粒子的組合[9],通過溫度、濕度以及風向等參數以及粒子之間的相互作用模擬云的生成過程。Nilsso[10]的方法是首先固定幾個半徑較大的粒子,然后使用一個隨機數發生器來生成其他粒子的位置得到單個云的形狀。Prashant[11]通過云圖(cloudmap)控制點云參數。點云模擬云層生成過程需要一定的時間導致這種建模方式并不適用于云層的實時更新,且存在每一次參數改變都會帶來較多的GPU和CPU的數據交互,難以滿足實時云層移動渲染的渲染需求。因深度學習的興起,除上述常見云層建模方法外,近幾年也有將深度學習與云層建模相結合的工作,如通過神經網絡根據云層照片生成云層模型[12],此方法雖不用手動建模,但和上述使用頂點網格的建模方法有著同樣的缺點,即無法實時表現云層動態。

針對上述局限性,Schneider等人[4-5]開發了一個新的云層建模方法,并在游戲《地平線:零之黎明》中使用,作者預計算分形后的云層密度到3維噪聲中,根據CryTek工作室提出的模型,在光線步進的每一個點都對預計算的噪聲采樣來模擬當前位置云層的密度,并使用天氣圖控制云出現的位置及云層高度信息,最終得到云層模型。這種云層建模方式的缺點是不是基于物理的,無法模擬溫度、風向等參數的改變所產生的變化,但可以通過噪聲模 擬流動效果。H?ggstr?m[13]改進了控制建模的天氣圖,他增加控制云層密度的通道,通過調節參數能夠實現云層從零到布滿整個天空的過渡。Fablan B[14]結合光線步進與體素渲染,使近處的霧更加真實。蘭未[15]討論了該方法在移動端的使用且給出了在移動端的優化方案。

1.2 云層移動

云層移動受到大氣湍流的影響在流動時表現出向前的翻滾,對云層的前向翻滾模擬可以渲染出更加可信的云層使整體畫面的真實感更加強烈。但對其研究較少,更多的是建模和光照方面的更新,近幾年只有地平線制作組和龔昱寧提出了他們的解決方案。

地平線制作組提出的云層移動解決方案是首先讓采樣點坐標隨時間緩慢上升,用此坐標采樣基礎紋理以此來給云層一個整體向上流動的效果,然后使用卷曲噪聲偏移采樣點,用此坐標采樣細節紋理來模擬邊緣的抖動效果。龔昱寧等提出可控域扭曲云層湍流渲染解決方案是在地平線組方案上的優化,主要是增加云層本身的扭曲效果,使云層移動時細節更豐富。此方法首先根據給定頻率振幅等屬性采樣域扭曲反Worley噪聲得到3個用于后續計算的分量,然后根據分量偏移出采樣點采樣Worley及Perlin-Worley噪聲得到云層扭曲前后的密度值進行混合。該方案沒有密度上的預計算操作,需要在一次步進過程中進行大量的采樣操作,如果后續將不同位置的扭曲頻率振幅等屬性整合成圖,采樣數還會繼續增多。

1.3 流動圖

流動圖是一個記錄向量場的紋理,圖上的顏色記錄該處向量場的方向。流動圖一般用于表現平面上的流動效果,如水面的波浪和火焰的搖曳。流動圖也可以用于表現云層的流動方向并以此模擬出極端天氣如龍卷。Wang[16]在他們的形狀可變的云層實現中引入了3維流動圖來控制云層形狀,而該文使用流動圖創造云層在豎直方向上的偏移。圖1為使用的流動圖樣例。

圖1 流動圖樣例

2 文中方法

該文在云層建模實現流程上與地平線游戲制作組提出的基本一致,但更改了流程中用于實現云層移動的算法,且使用時間上升頻對交叉矩陣降低分辨率后的結果降噪,提升渲染效率。

流程分為以下3個步驟:

(1)根據交叉矩陣篩選出當前幀需要渲染的像素。

(2)從被選像素開始向云層光線步進。在光線步進過程中,使用流動圖控制云層移動并累計云層透明度,然后將該透明度作為步驟3中的混合系數。

(3)使用時間上升頻,按系數混合當前渲染結果與歷史渲染數據作為當前幀輸出,保存這個輸出用于增強下一幀的渲染效果。

2.1 無縫流動

為了創造云層在豎直方向上的無縫偏移,該文放棄使用地平線組用于偏移細節噪聲采樣點的卷曲噪聲,這種解決方案雖然能模擬出云層移動時部分流動效果但存在不足,對細節的偏移只能影響云層邊緣,云層移動會出現主體的云沒有動但邊緣在快速抖動以及抖動不連續的現象,降低云層真實感。而使用流動圖,在設置合理的情況下可以解決這一問題。流動圖本質是一個二維的向量場,因此用于控制云層在移動時各部分的移動情況時會使云層整體形狀而非僅邊緣部分發生改變,而且能夠很好地控制云層移動時的翻滾方向。對于不連續現象的產生,該文通過對兩個相位的流動圖采樣疊加來實現無縫循環。對流動圖的無縫采樣步驟可總結如下:

(1)構造周期相同,相位差半個周期的波形函數P0,P1。為了防止得到的偏移量隨時間越來越大,使用frac函數將其限制在[0,1]之間。

(1)

(2)使用波形函數P0,P1,周期化向量場方向,流動圖本身記錄的值的范圍為[0,1],作為方向使用時需將其映射為[-1,1]。該文使用時間和云層采樣點的高度百分比ph作為流動圖采樣的原始位置。

(2)

(3)將兩個相差半個周期的結果進行加權混合,使一個周期結束到另一個周期開始的跳躍情況被另一層采樣覆蓋,從而得到一個連續的偏移量,作為云層該點的偏移指向。

offset=lerp(S0,S1,abs(0.5-P0)*2)

(3)

2.2 云層移動實現

云層受到大氣中風的影響移動,風速會隨著地區溫度及海拔高度的變化而發生變化。通常來說,在地表一定區域內海拔越高風速越大,云移動也會表現出云頂移動的比底部快進而產生湍流現象。地平線組方案的做法是根據高度百分比來增加采樣點偏移的速度,使云層看起來傾斜著向前運動,這種移動的問題是過于整齊,在邊緣生成的云會整齊地朝前移動,產生明顯的斷層。為防止斷層產生,用根據采樣點高度百分比以及時間共同采樣流動圖的結果來偏移采樣點,這種做法不僅能夠使云層移速隨高度改變,還能使云層整體形狀根據流動圖內容扭曲形變。

引入上述采樣算法,則云層實時移動的步驟可表示為:

輸入:采樣點坐標pos,風速信息(up,forword)。

輸出:采樣點的密度density。

步驟一:根據采樣點在云層中的高度Ah以及當前云層高度Ch,計算采樣點在云層中的高度百分比ph。

(4)

步驟二:按公式(3)采流動圖并與風速信息一起應用于當前采樣點,得到偏移后的采樣點pos'。

pos'+=ph×offset×(up,froward)

(5)

步驟三:使用偏移后的采樣點位置對形狀噪聲(GetShape)和細節噪聲(GetDetail)采樣得到最終云層密度d。

d=GetShape(pos')-GetDetail(pos')

(6)

2.3 時間上升頻

光線步進算法中有多少像素被光線步進是影響性能消耗的最重要因素。公式(7)是文中方法所需總執行時間的近似。

(7)

其中,T表示總的執行時間,np為需要渲染的像素數量,ns為沿觀察方向的步進數,ts為每一步云層密度采樣需要的時間,tm為控制云層移動所需的時間。

在ts和tm固定的情況下,減少每幀渲染的像素數np可以大幅優化性能。但是降低分辨率通常會大大降低圖片質量,而使用時間上升頻可以在渲染較低分辨率的前提下仍保留質量,時間上升頻本質是利用歷史渲染結果來增強當前幀的渲染效果,將歷史渲染結果與當前結果按一定關系與比例混合。

該文使用4×4交叉矩陣M降低所需渲染的像素數,每一幀按M中的順序渲染每個4×4像素塊的一個像素,即每幀都以十六分之一的分辨率渲染整個畫面。對于每個4×4的像素塊,使用交叉矩陣M來控制其渲染順序而不是按順序渲染來避免產生較強的割裂感。

上升頻步驟可總結如下:

(1)使用逆視圖投影矩陣(Mview·Mproj)-1從剪輯空間坐標Pcs計算世界坐標Pws。

Pws=Pcs·(Mview·Mproj)-1

(8)

(9)

(10)

(4)使用當前幀計算得出的透明度α作為當前幀與歷史結果混合系數進行混合。

Cfinal=C·α+C'·(1-α)

(11)

圖2為單幀渲染畫面以及使用時間上升頻后的結果。

圖2 時間上升頻

3 實驗結果

3.1 實驗環境

實驗在Unity(2021.3.5fc1)上進行,分別使用了1 920*1 080和3 840*2 160的渲染分辨率與GTX3070顯卡。

3.2 云層移動效果

為了說明文中解決方案在云層移動表現效果上具有一定優勢,將文中方案與地平線組提出的解決方案進行對比,而與龔昱寧提出的解決方案進對比時將會與原論文實現圖片比較。其中基于流動圖的效果圖為文中方案實現效果,對照組效果圖分別為地平線組方案實現效果以及從域扭曲方案原文中截取的效果圖。為方便觀察云層整體形狀與邊緣細節,從云層側方進行了對比,并且每10幀記錄一次云層變化,然后按時間順序拼接。觀測結果如圖3和圖4所示。

圖3 文中方案實現效果

圖4 地平線組方案實現效果

將上述實驗結果局部放大后得到如圖5所示的結果圖,其中圖5(a)為文中方案實現結果局部放大圖,圖5(b)為地平線游戲組方案的實現結果局部放大圖,圖5(c)顯示了局部截取的位置。由圖5(b)可以看出,地平線組方案實現云層移動時會在邊緣產生不連續的情況,表現為邊緣云層突然從后方出現并向前移動,在連續的移動中這種情況帶來的人造感尤為明顯,此外,這種方法實現的云層形狀不會在移動時發生改變。相較于上述結果,文中方案不僅能夠實現連續的移動且能夠在云層邊緣處表現出朝風向的形變,從而在連續的移動中表現出前向翻滾細節,見圖5(a)。

圖5 局部放大結果

圖6為域扭曲方法原文[6]截取的效果圖,圖7為文中方案在類似角度觀察結果。龔昱寧[6]在論文中表示其方案實現云層移動湍流細節優于低頻線組方案,而對比圖6,文中方案擁在渲染時間小于域扭曲方案的同時有其方案類似的細節表現。

圖6 域扭曲原文截取結果

圖7 文中方案實現結果

3.3 性能消耗

光線步進是一個十分耗時的過程,如果不進行性能優化很難在實時應用中使用。由公式(8)可知,渲染耗時與光線步進的次數以及渲染像素數量相關,因此首先對比了不同步進次數渲染一幀的效果,以此得到渲染出可接受云層效果的最低所需步進次數。圖8是分辨率為1 920*1 080時步進次數依次為8,16,32,64,128,256時的實驗局部結果圖。對比圖8(a)、圖8(b)可以看出,當步進數為64時,文中云層渲染方法雖部分位置細節仍有不足但效果已經能夠接受。

圖8 不同步進次數的效果

圖9為直接渲染結果與使用交叉矩陣減少渲染像素然后使用時間上升頻方法提升云層渲染質量后的結果,表1為兩種方法在步進次數為8,16,32,64時的耗時。根據圖9渲染結果以及表1中數據可以看出,使用交叉矩陣和時間上升頻方法會在云層邊緣處出現失真,但渲染效率大幅提升,在步進次數為64時直接渲染需要的時間為12.7 ms,而文中方法僅需1.6 ms。由于云是一種低頻的信息,在幀率足夠的情況下邊緣處的失真不會破壞云層整體的真實性。

表1 云層渲染所需時間

圖9 直接渲染與使用交叉矩陣+時間上升頻結果對比

最后,對比了在不同分辨率以及不同步長的情況下三種渲染方法都應用交叉矩陣以及時間上升頻提升渲染效率的耗時,如圖10所示,其中域扭曲渲染方法所需時間來自原文給出的參考時間。

圖10 不同分辨率及步進次數下渲染耗時

圖10(b)展示了三種方法渲染一幀的耗時,域扭曲方法所需時間明顯高于文中方法所需時間,雖然使用設備不同,但此耗時仍具有一定參考價值,因為需要控制云層扭曲,域扭曲方法沒有對云層密度預計算,因此耗時會遠高于使用了預計算的地平線組方法以及文中方法。在步進數為64時,文中云層渲染方法雖部分位置細節仍有不足但效果已經能夠接受,在渲染分辨率為1 920*1 080時耗時1.6 ms僅比地平線組的耗時增加了0.1 ms,十分高效。即使在對畫面有著更高要求的場景如4k分辨率下,渲染速度依舊可以達到3.1 ms,如圖10(b),比地平線組耗時增加0.2 ms,仍然十分高效。

4 結束語

提出了使用流動圖對云層進行豎直方向上的偏移,使流動云層能夠在移動時表現出更加真實的前向翻滾細節,且比較了該方法在不同分辨率以及步進次數下的性能消耗和渲染效果。實驗結果表明,所提云層移動方法相較于另外兩種方法有著更加真實的云層隨風形變細節。使用交叉矩陣以及時間上升頻來提升云層渲染效率后在步進數為64時能夠達到1.6 ms每幀,僅比地平線組方法高0.1 ms,十分高效。但上述結論均建立在擁有一個設置合理的流動圖的前提之下,后續將考慮程序化生成一個合理的流動圖。

猜你喜歡
效果方法
按摩效果確有理論依據
學習方法
迅速制造慢門虛化效果
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
3D—DSA與3D—CTA成像在顱內動脈瘤早期診斷中的應用效果比較
主站蜘蛛池模板: 亚洲乱伦视频| 99久久精品视香蕉蕉| 视频在线观看一区二区| 久久香蕉欧美精品| 亚洲一区二区三区中文字幕5566| 99中文字幕亚洲一区二区| 日本午夜在线视频| 999国内精品久久免费视频| 2021国产v亚洲v天堂无码| 夜夜拍夜夜爽| 午夜视频免费试看| 视频一区视频二区中文精品| 欧美亚洲欧美| 美女黄网十八禁免费看| 国产jizzjizz视频| 韩国自拍偷自拍亚洲精品| 四虎永久免费在线| 2019年国产精品自拍不卡| 亚洲综合色吧| 亚洲一区波多野结衣二区三区| 免费人成视网站在线不卡| 国产香蕉97碰碰视频VA碰碰看| 欧美视频在线不卡| www.日韩三级| 婷婷久久综合九色综合88| 色天天综合| 久热这里只有精品6| 国产又色又爽又黄| 国产产在线精品亚洲aavv| 国产免费一级精品视频| 久久婷婷国产综合尤物精品| 国产亚洲精品va在线| 国产黑丝一区| 人妻免费无码不卡视频| 婷婷午夜天| 国产成人精品高清不卡在线| 亚洲中久无码永久在线观看软件| 日本在线欧美在线| 最近最新中文字幕免费的一页| 国产第一页第二页| 国产欧美精品午夜在线播放| 国内精品九九久久久精品 | 色婷婷成人网| 久久久噜噜噜久久中文字幕色伊伊| 亚洲五月激情网| 精品欧美一区二区三区在线| 美女无遮挡被啪啪到高潮免费| 久久久噜噜噜| 久久久91人妻无码精品蜜桃HD| AV色爱天堂网| 天天综合色网| 亚洲精品高清视频| 精品欧美日韩国产日漫一区不卡| 国产欧美日韩18| 无码乱人伦一区二区亚洲一| 亚洲婷婷丁香| 欧美精品黑人粗大| 激情综合五月网| 最新国语自产精品视频在| 国产麻豆永久视频| 精品视频在线一区| 国产激情影院| 国产成+人+综合+亚洲欧美 | 中文字幕久久亚洲一区 | 国产欧美日韩免费| 福利在线一区| 久久综合九九亚洲一区| 国产在线精彩视频二区| 九九九久久国产精品| a免费毛片在线播放| 超级碰免费视频91| 欧美日韩第三页| 九九久久99精品| 一本大道无码高清| 国产黄色视频综合| 日韩精品一区二区三区大桥未久| 青草国产在线视频| 怡红院美国分院一区二区| 日韩中文精品亚洲第三区| a天堂视频在线| 亚欧成人无码AV在线播放| 国产91全国探花系列在线播放|