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...
입자(Particle) 시스템 (2D)
튜토리얼의 이 섹션에서는 (3D) GPU 가속 입자 시스템을 다룹니다. 여기에서 논의된 대부분의 내용은 CPU 파티클에도 적용됩니다.
소개
입자 시스템을 사용하여 불, 불꽃, 연기, 마법 효과 등과 같은 복잡한 물리적 효과를 시뮬레이션할 수 있습니다. 역동적이고 유기적인 동작을 생성하고 장면에 "생명"을 추가하는 데 매우 적합합니다.
입자가 고정된 간격과 고정된 수명으로 방출된다는 아이디어입니다. 수명 동안 모든 입자는 동일한 기본 동작을 갖습니다. 각 입자를 다른 입자와 다르게 만들고 유기적인 모양을 만드는 것은 대부분의 매개변수와 동작에 추가할 수 있는 무작위성입니다.
Godot에서 생성하는 모든 파티클 시스템은 파티클과 이미터라는 두 가지 주요 부분으로 구성됩니다.
Particles
입자는 입자 시스템의 눈에 보이는 부분입니다. 입자 시스템이 활성화될 때 화면에 표시되는 것은 작은 먼지 얼룩, 불길, 빛나는 마법 효과의 구체입니다. 단일 시스템에는 수십만에서 수만 개의 입자가 있을 수 있습니다. 입자의 크기, 속도, 이동 방향을 무작위로 지정하고 수명 주기에 따라 색상을 변경할 수 있습니다. 불을 생각할 때 불에서 날아가는 모든 작은 불씨를 개별 입자로 생각할 수 있습니다.
지터
방사체는 입자를 생성하는 것입니다. 이미터는 일반적으로 눈에 보이지 않지만 모양을 가질 수 있습니다. 이 모양은 파티클이 생성되는 위치와 방법을 제어합니다. 예를 들어 파티클이 먼지처럼 방을 가득 채울지 아니면 분수처럼 단일 지점에서 발사할지 여부를 제어합니다. 화재 예로 돌아가면, 방사체는 불씨와 화염을 생성하는 불의 중심에 있는 열입니다.
노드 속성(Node Property)
Godot에서 사용 가능한 모든 3D 입자 노드
Godot에는 두 가지 유형의 3D 파티클 시스템이 있습니다: GPU에서 처리되는 :ref:`class_GPUParticles3D`와 CPU에서 처리되는 :ref:`class_CPUParticles3D`입니다.
CPU 파티클 시스템은 GPU에 비해 유연성이 떨어지지만 더 넓은 범위의 하드웨어에서 작동하고 구형 장치 및 휴대폰에 대한 더 나은 지원을 제공합니다. CPU에서 처리되기 때문에 GPU 입자 시스템만큼 성능이 좋지 않으며 개별 입자를 많이 렌더링할 수 없습니다. 게다가 현재 GPU 입자 제어에 사용할 수 있는 모든 옵션이 없습니다.
GPU 파티클 시스템은 GPU에서 실행되며 최신 하드웨어에서 수십만 개의 파티클을 렌더링할 수 있습니다. 사용자 정의 입자 셰이더를 작성할 수 있으므로 매우 유연합니다. 어트랙터와 충돌 노드를 사용하여 환경과 상호 작용하도록 만들 수도 있습니다.
입자 어트랙터 노드에는 GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D 및 :ref:`class_GPUParticlesAttractorVectorField3D`의 세 가지가 있습니다. 어트랙터 노드는 도달 범위에 있는 모든 입자에 힘을 가하고 해당 힘의 방향에 따라 입자를 더 가까이 끌어당기거나 밀어냅니다.
여러 개의 입자 충돌 노드가 있습니다. GPUParticlesCollisionBox3D 및 class_GPUParticlesCollisionSphere3D`는 간단한 것입니다. 이를 사용하여 입자가 충돌하는 상자, 바닥 또는 벽과 같은 기본 모양을 만들 수 있습니다. 다른 두 개의 노드는 보다 복잡한 충돌 동작을 제공합니다. :ref:`class_GPUParticlesCollisionSDF3D`는 개별 상자 및 구형 충돌체를 모두 직접 만들 필요 없이 실내 장면이 입자와 충돌하도록 하려는 경우에 유용합니다. 파티클이 대규모 야외 장면과 충돌하도록 하려면 :ref:`class_GPUParticlesCollisionHeightField3D 노드를 사용합니다. 세계와 그 안의 객체에 대한 하이트맵을 생성하고 이를 대규모 입자 충돌에 사용합니다.