나이아가라 기초


image.png

과거에는 VFX를 구현하기 위해 프로그래머가 **직접 코드(HLSL 또는 C++)**를 작성해야 했습니다.

언리얼 엔진의 이전 시스템인 Cascade는 고정된 기능과 하드코딩된 동작으로 제한적이었으며, 복잡한 맞춤형 효과를 만들기 어려웠습니다.

그러나, 언리얼 엔진에서 나이아가라는 코드를 구현하지 않아도 보다 쉽고 빠르게 VFX를 구현할 수 있도록 합니다.

나이아가라와 하드코딩


앞서 살펴봤듯이 나이아가라는 기본적으로 코드 없이도 작업 가능하도록 설계되었지만, 고급 사용자나 프로그래머는 직접 HLSL 코드를 작성해 커스텀 모듈을 제작할 수 있습니다.

예를 들어, 입자 속성(위치, 색상 등)을 실시간으로 계산하거나 게임 데이터(플레이어 위치 등)와 연동하려면 코드 작성이 필요할 수 있습니다.

하지만 대부분의 일반적인 작업은 이미 제공된 모듈과 노드를 활용해 충분히 구현 가능합니다.

나이아가라 프로세스


image.png

나이아가라 시스템에서 CPU와 GPU의 역할 분담은 다음과 같은 파이프라인으로 이루어집니다.

CPU 단계

  1. 시스템 초기화:
  2. 이미터 스폰 (Emitter Spawn)
  3. 이미터 업데이트 (Emitter Update)
  4. 데이터 준비 및 전송

GPU 단계

  1. 파티클 스폰 (Particle Spawn)
  2. 파티클 업데이트 (Particle Update)
  3. 렌더링 준비

렌더링 단계

데이터 피드백

GPU에서 CPU로 데이터 전송

나이아가라 커스텀 파라미터


image.png

나이아가라 시스템에서 사용자 파라미터(User Parameters)는 외부에서 파티클 시스템의 속성을 제어하고 조정할 수 있게 해줍니다.