Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

粒子系統(3D)

本教學的這一部分介紹 (3D) GPU 加速的粒子系統。這裡討論的大部分內容也適用於 CPU 顆粒。

前言

您可以使用粒子系統來模擬複雜的物理效果,例如火焰、火花、煙霧、魔法效果等等。它們非常適合建立動態和有機的行為,並為您的場景新增“生命”。

這個想法是以固定的間隔發射具有固定的壽命的 "粒子". 在其生命週期中, 每個粒子都具有相同的基本行為. 讓每個粒子變得不同並提供整體更加 "有機" 外觀的是與各個參數相關的 "隨機性". 實質上, 建立粒子系統意味著設定基本物理參數, 然後為它們新增隨機性.

您在 Godot 中建立的每個粒子系統都包含兩個主要部分:粒子和發射器。

粒子

粒子是粒子系統的可見部分。這就是當粒子系統處於活動狀態時您在螢幕上看到的內容:微小的塵埃、火焰、魔法效果的發光球體。單一系統中可以有幾百到數萬個粒子。您可以隨機化粒子的大小、速度和運動方向,並在其生命週期中改變其顏色。當你想到火時,你可以把所有從火中飛走的小餘燼想像成單一粒子。

抖動

發射器是產生粒子的東西。發射器通常不可見,但它們可以具有形狀。該形狀控製粒子產生的位置和方式,例如它們是否應該像灰塵一樣充滿房間,或者像噴泉一樣從單點射出。回到火的例子,發射器是火中心的熱量,產生餘燼和火焰。

節點屬性

在群組中的節點列表

Godot 中可用的所有 3D 粒子節點

Godot 中有兩種型別的 3D 粒子系統:在 GPU 上處理的 class_GPUParticles3D 和在 CPU 上處理的 class_CPUParticles3D 。

CPU particle systems are less flexible than their GPU counterpart, but they work on a wider range of hardware and provide better support for older devices and mobile phones. Because they are processed on the CPU, they are not as performant as GPU particle systems and can't render as many individual particles. In addition they currently do not have all the available options GPU particles have for control.

GPU 粒子系統在 GPU 上運作,可在現代硬體上渲染數十萬個粒子。您可以為它們編寫自訂粒子著色器,這使得它們非常靈活。您還可以使用吸引器和碰撞節點使它們與環境互動。

共有三個粒子吸引器節點:class_GPUParticlesAttractorBox3D、class_GPUParticlesAttractorSphere3D 和 class_GPUParticlesAttractorVectorField3D。吸引子節點向其範圍內的所有粒子施加力,並根據該力的方向將它們拉近或推開。

有多個粒子碰撞節點。 GPUParticlesCollisionBox3DGPUParticlesCollisionSphere3D 是簡單的。您可以使用它們來建立粒子碰撞的基本形狀,例如盒子、地板或牆壁。另外兩個節點提供更複雜的碰撞行為。當您希望室內場景與粒子碰撞而無需手動建立所有單獨的盒子和球體碰撞器時,class_GPUParticlesCollisionSDF3D 非常有用。如果您希望粒子與大型室外場景發生碰撞,您可以使用 class_GPUParticlesCollisionHeightField3D 節點。它建立您的世界及其中的物件的高度圖,並將其用於大規模粒子碰撞。

基本使用

進階匯出