Unity VFXGraph入門學習(二)-模擬天氣案例



前言

參考鏈接:
  1. VFXGraph官方文檔:(https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@6.9/manual/index.html)
  2. VFXGraph 模擬天氣官方教程(可以下載相關資源):
    (https://learn.unity.com/tutorial/simulating-weather-with-the-vfx-graph-unity-2018-lts-1?projectId=&uv=2018.4#)

一、介紹

制作關於雪的三個屬性:

  • 雪沿着空氣和風的速度流動.
  • 雪移動的越快,顯的越條紋.
  • 降雪強度不同.

本章學習案例主要是模擬這三種狀態.

參考官方VFXGraph Blocks Glossary

二、使用VFXGraph實現效果

1.Spawn塊實現

Spawn(類似於 Awake() 調用).

  • 添加周期和范圍: SpawnRate(浮點數 ),SpawnRange(Vector2 )
  • Periodic Total Time: 周期變化率
    實現系統中的粒子數量隨時間變化。

2.Initialize Particle塊實現

Initialize相當於Unity聲明周期中Start() 調用.

  • Capacity: 粒子的最大容量值
    這里將粒子的最大容量值設置50000,這完全夠用.

  • Set Velocity Random: 設置隨機速度
    將SetVelocityRandom中值大小統一增加至少+-10可以增加粒子移動體積,使粒子均勻分布在場景中,並為他們提供隨機速度.

  • Set Position: 設置粒子發射初始位置
    Y=12為粒子添加高度,營造雪從天而降的錯覺.

  • Sine Wave(float):正弦波節點
    為了添加正弦波評估隨事件變化的值.

  • TotalTime:總時間節點
    創建一個總時間節點並將其輸出拖到正弦波節點的輸入。

3.Update Particle塊實現

Update(Update() 調用).

這里雖然系統的基本行為已經完成,但粒子本身仍然沿直線向外移動。我們將修改更新上下文以使粒子移動,就像它們沿着氣流流動一樣。

實現用矢量場模擬運動和縮放:

  • Vector Field Force:矢量力場, 提供 3D 矢量場紋理作為輸入
    此這個 3D 紋理用 3D 空間中的向量數組填充我們之前定義的速度體積。每個向量都沿粒子在3D空間中的定向方向推進粒子.

矢量力場充當 3D 空間中氣流的數字表示。這可以通過想象在天氣預報程序中顯示氣流來最好地概念化.

  • Turbulence: 湍流塊
    要向矢量場添加更多發散,將湍流塊添加必不可少,並增加其強度.

  • Set Scale.XY by Speed:根據粒子的速度動態地更改粒子的大小
    在場景中使它們具有更像雪的條紋外觀。

請注意此塊的 Speed Range 屬性。X 值表示我們將考慮的最小速度,Y 值表示將考慮的最大速度。與 Set Size over Life Block 類似,這個 Block 將這個范圍映射到 0 到 1 之間的值。我們希望每個粒子的 X 尺度在接近最大速度時減小,而每個粒子的 Y 尺度增加。

需要設置Scale xy動畫曲線屬性:
X:

Y:

4.Output Particle Quad塊實現

Output(定義生成的粒子應該如何渲染到屏幕上).

  • Orient: Along Velocity
    將模式從“FaceCameraPlane”更改為“AlongVelocity”。這將使雪粒子面向它們行進的方向。

  • Set Size over Life: 按存活時間設置粒子大小

  • Set Color over Life:按存活時間設置粒子顏色

雪花貼圖

三、總結

最后實現效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM