Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
粒子系統(3D)
本教學的這一部分介紹 (3D) GPU 加速的粒子系統。這裡討論的大部分內容也適用於 CPU 顆粒。
前言
您可以使用粒子系統來模擬複雜的物理效果,例如火焰、火花、煙霧、魔法效果等等。它們非常適合建立動態和有機的行為,並為您的場景新增“生命”。
這個想法是以固定的間隔發射具有固定的壽命的 "粒子". 在其生命週期中, 每個粒子都具有相同的基本行為. 讓每個粒子變得不同並提供整體更加 "有機" 外觀的是與各個參數相關的 "隨機性". 實質上, 建立粒子系統意味著設定基本物理參數, 然後為它們新增隨機性.
您在 Godot 中建立的每個粒子系統都包含兩個主要部分:粒子和發射器。
Particles
粒子是粒子系統的可見部分。這就是當粒子系統處於活動狀態時您在螢幕上看到的內容:微小的塵埃、火焰、魔法效果的發光球體。單一系統中可以有幾百到數萬個粒子。您可以隨機化粒子的大小、速度和運動方向,並在其生命週期中改變其顏色。當你想到火時,你可以把所有從火中飛走的小餘燼想像成單一粒子。
抖動
發射器是產生粒子的東西。發射器通常不可見,但它們可以具有形狀。該形狀控製粒子產生的位置和方式,例如它們是否應該像灰塵一樣充滿房間,或者像噴泉一樣從單點射出。回到火的例子,發射器是火中心的熱量,產生餘燼和火焰。
節點屬性
Godot 中可用的所有 3D 粒子節點
Godot 中有兩種 3D 粒子系統:GPUParticles3D (由 GPU 處理),以及 CPUParticles3D (由 CPU 處理)。
CPU 粒子系統的彈性不如 GPU 版本,但它們能在更廣泛的硬體上運作,並為較舊的裝置和手機提供更好的支援。由於它們是在 CPU 上處理的,效能不如 GPU 粒子系統,且無法算繪那麼多獨立的粒子。此外,它們目前也沒有 GPU 粒子所擁有的所有控制選項。
GPU 粒子系統在 GPU 上運作,可在現代硬體上算繪數十萬個粒子。您可以為它們編寫自訂粒子著色器,這使得它們非常靈活。您還可以使用吸引器和碰撞節點使它們與環境互動。
Godot 有三種粒子吸引器節點:GPUParticlesAttractorBox3D、GPUParticlesAttractorSphere3D 以及 GPUParticlesAttractorVectorField3D。吸引器節點會對其範圍內所有粒子施加力,根據方向將粒子拉近或推遠。
粒子碰撞節點有多種。GPUParticlesCollisionBox3D 和 GPUParticlesCollisionSphere3D 屬於基礎型,可用於建立方塊、地板或牆壁等簡單形狀的碰撞。另有兩種較進階的節點:GPUParticlesCollisionSDF3D 適合室內場景要與粒子碰撞時使用,無需手動建立多個方塊或球體碰撞器。若要讓粒子與大型戶外場景碰撞,可用 GPUParticlesCollisionHeightField3D 節點,這會產生場景與物件的高度圖,以實現大範圍碰撞。