溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Unity如何做流體物理的幾個輪子

發(fā)布時間:2022-01-05 14:25:19 來源:億速云 閱讀:201 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下Unity如何做流體物理的幾個輪子,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Unity如何做流體物理的幾個輪子

內(nèi)部實現(xiàn)就是Liquidfun

Unity如何做流體物理的幾個輪子

也提供了metaball實現(xiàn)(雖然2D的metaball實在沒啥可說的)

Unity如何做流體物理的幾個輪子
half4 frag (v2f i) : COLOR  {      half4 texcol,finalColor;      finalColor = tex2D (_MainTex, i.uv);
   if(finalColor.a < _botmcut)    {      finalColor.a = 0;    }    else    {      finalColor.a *= _constant;    }                      return finalColor;  }

原理就是按透明度閾值discard掉閾值外的像素,圓片的實際范圍會比顯示的多探一部分出去,兩個圓片探出來的部分疊在一起,透明度就會超過閾值變得能夠顯示,看起來兩個水滴就會粘連在一起了,而不是相互獨立的圓。

Unity如何做流體物理的幾個輪子

但是3D水不能只考慮密度,還要考慮法線。且3D空間里密度也不能簡單Blend實現(xiàn)疊加,3D空間同時也會因為紋理的大小限制而不能像2D空間這么鋪張浪費,導(dǎo)致算法變得完全不同。2D水渲染是看起來復(fù)雜實際上很簡單的例子,而3D水渲染恐怕就是看起來復(fù)雜實際上更復(fù)雜的例子了。

Unity如何做流體物理的幾個輪子

不過令我比較意外的是,Liquidfun里面大部分示例都沒有用metaball技術(shù),而是直接用AlphaBlend將全部粒子繪制上去的。它使用了大小接近像素的粒子,然后根據(jù)物理計算出來的流體密度來直接給粒子著色(水面和泡沫密度低所以是白色的,水底密度高所以是深色的),已經(jīng)可以得到足夠理想的結(jié)果。

Unity如何做流體物理的幾個輪子

仔細想想和metaball根據(jù)透明度重映射差不多,它只是把累計密度的部分直接放到了物理上處理,然后往屏幕上直接畫點罷了。

它最后的這個weight演示能充分體現(xiàn)出其著色原理。

Unity如何做流體物理的幾個輪子


以上是“Unity如何做流體物理的幾個輪子”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI