視頻封面

00:07

這個煙花的例子跟上面的很像, 都是通過Cascade控制DynamicParameter節點(視頻)

視頻封面

00:10

使用簡單的StaticMesh來做環境特效, 比如塵埃, 用類似的做法可以省去GameThread的更新開銷

Spline Thicken通常被Epic的特效和環境美術用來模擬彎曲的圓柱體

視頻封面

00:10

視頻封面

00:19

很多Gears5里的特效都是使用VertexShader來完成的, 降低了CPU的開銷

空間信息怎麼辦?

蓋斯特納波經常用來做海洋模擬, 就是多個不同步長的正弦波做疊加

  • Amplitude: 振幅(波形高)
  • WaveDir: 波傳播的方向
  • Pos: 頂點的起始點
  • Wavelength: 波長, 波形的頻率
  • Phase: 偏移, 跟之前的StartTime一樣

使用frac來做波形的重複傳播

把上面那個重複的0~1的值跟Sin函數進行疊加

視頻封面

00:47

視頻里演示了這次分享中和許多技術. MPC可以在不同材質間共享全局參數, 比如波長, 水花, 泡沫等的時間參數

加入一個Phase參數控制兩個波形之間的距離, 可以是常量也可以是變數.

DistanceField(距離場)可以告訴你跟一個最近表面的距離, 那可以用DistanceField來控制PhaseOffset, 用於模擬水波靠近岩石的效果

UE4工程中需要開啟DistanceField, 材質中可以使用DistanceToNearestSurface節點來獲取離最近表面的距離, 這些信息是保存在相機周圍的Volumn Texture(3D體積紋理)里

反轉0~1的值, 把距離轉換成Mask

視頻封面

00:10

一個PhaseOffset的例子

把DistanceFieldGradients與波形方向結合在一起

DistanceFieldGradients看起來像NormalMap, 代表了離最近表面的方向

視頻封面

00:10

跟方向做點積

美術通常用Flowmaps來保存流動的方向

視頻封面

00:06

這是Fortnite里的河流, 在邊緣的地方結合了DistanceField和NormalMap來改變流向, 用來模擬水流經過鵝卵石的效果

視頻封面

00:07

又一個例子, 演示DistanceField改變flowmap的方向

這是材質節點, 把NormalMap從Tangent轉到Flow空間

總結Analytical Simulation的優勢: 性能好, 適合做環境特效什麼的

視頻封面

00:13

補充了一個LaggedWave實現

使用Vector Noise中的Curl Noise可以加入很多三維空間的隨機效果, 不過需要節省著點用

使用UE4中的ScaleUVsbyCenter對Flowmap進行縮放, 用來模擬泡沫從岩石上落下的效果

推薦閱讀:

相关文章