在Unity中創建熔岩槍效果

Spread the love

Fickle Swimming用Shader和VFX Graphs解釋了融化Unity中設置的岩石的槍支背後的邏輯。

介紹

我是Fickle Swimming,過去三年來我一直擔任Unity開發人員。我完成的最高學歷是高中。

項目構想

我有四個星期的假期,所以我決定花兩個時間從事某種個人項目。我的目標是製作一些“他是如何做到的”剪輯,以發佈到Reddit上。

我以前使用溶解著色器進行了Akira風格的爆炸,並使用基於新穎的模具的方法製作了《星際大戰》【雪球】。我認為如果將這兩個項目結合在一起,並添加一些Voxels,這可能是進行實時破壞的一種實用方法。

在遊戲中渲染Voxels的標準技術限制了藝術風格。我想刪除該限制。如果我想出某種方法將體素破壞與常規幾何體結合起來,那麼就可以將AAA質量的圖形與在Minecraft或Astroneer等遊戲中發現的可破壞性結合起來。我找不到以前做過此事的人,因此這是一個創造新事物的機會。

生產

首先,我必須想出一種在常規網格物體上進行Voxels破壞的方法。經過反複試驗,我得出了以下公式:

1.從一個或多個網格生成SDF,並將其存儲在3D紋理中。我為此製作了自己的生成器,但是那裡有很多免費的SDF生成器。

2.使用著色器渲染網格/網格,該著色器對SDF紋理進行採樣,並丟棄外部的碎片。這將在網格中創建孔洞。

3.射線行進孔洞以渲染內表面。這部分是最複雜的。在我找到可行的方法之前,我先使用深度預通過和模板緩衝測試了多種解決方案。

4.使用計算著色器通過對SDF進行減法運算來完成破壞。

該解決方案應適用於您將要放入遊戲中的大多數3D模型。為了證明這個概念,我認為我必須在一個漂亮的場景中演示它的工作原理。Unity的HDRP,Shader Graph,VFX Graph和Quixel Megascans給了我所需的大部分東西。

我通過在周圍散佈一些冰島岩石來建立場景。HDRP給了我閃電和後處理能力。VFX Graph給了我顆粒效果,例如火焰,煙霧,折射,熔岩和火花。VFX Graph有一個節點,用於將粒子與SDF碰撞,因此我免費獲得了該零件。 

該光束是在著色器圖中完成的,它只是一個具有一些頂點位移和一些帶有動畫UV坐標的噪聲的圓柱體。

槍是費力的程序藝術。紋理是在物質中完成的。

它如何與紋理一起使用?

僅在新切塊上使用紋理,在生成熔岩粒子時,這裡有發光的動畫紋理可以平滑過渡。可以使用三平面映射將紋理應用於內部。

是否可以添加破壞物理?

這有點令人頭疼。我已經在類似的項目中看到它完成了,所以應該有可能。我在想也許我將在GPU上進行連通性測試,然後異步回讀以生成對撞機CPU端。我以前從未做過。另一個想法是使用某種加速結構來鏡像銷毀CPU端。

可以在遊戲中使用嗎?

效果並不像看上去那樣嚴重,我相信在遊戲中使用它是可行的。為了使其能夠在開放世界類型的遊戲中運行,必須實施某種基於距離的詳細級別方案。

您會改善什麼?

我覺得我做錯了熔岩。我花了很多時間只是想讓它看起來可以接受。下次我可能會走另一條路。

留下一個答复

spot_img

More like this

【 紗羅 ̵...

https://www.youtube.com/watch?v=lY3UiUmJ3-o Sara Ch. 紗羅 【群星計畫 / 比鄰星域所屬】 哈囉~ 我是紗羅!請多多指教! 虛擬中文系研究生,朝知識型Vtuber的方向努力著。 夢想是在家裡打造一座圖書館。 隸屬於臺灣Vtuber企業團體「比...

【水上玄子】《誰是中...

https://www.youtube.com/live/Dkj6FbsF0yI 大家好,我是病氣系vtuber水上玄子,擅長占卜、直覺溝通,目前常態企劃有鳥卦人生,請大家多多指教<3 生長自夢境,想成為人類與人們一同生活,先是變身成鳥,才終於成為人形。 病氣系vtuber,罹患焦...

【納希斯Narcis...

https://www.youtube.com/watch?v=YArbmONSXUE 本週六日11/9-11/10在花博,巴哈姆特要28周年站聚啦! 聯合各家 VTuber 相關獨立遊戲開發團隊,並打造了雙面巨型看板,邀請120位台灣VTuber主播們一起幫巴哈慶生。 歡迎大家到現場...