
과거에는 VFX를 구현하기 위해 프로그래머가 **직접 코드(HLSL 또는 C++)**를 작성해야 했습니다.
언리얼 엔진의 이전 시스템인 Cascade는 고정된 기능과 하드코딩된 동작으로 제한적이었으며, 복잡한 맞춤형 효과를 만들기 어려웠습니다.
그러나, 언리얼 엔진에서 나이아가라는 코드를 구현하지 않아도 보다 쉽고 빠르게 VFX를 구현할 수 있도록 합니다.
앞서 살펴봤듯이 나이아가라는 기본적으로 코드 없이도 작업 가능하도록 설계되었지만, 고급 사용자나 프로그래머는 직접 HLSL 코드를 작성해 커스텀 모듈을 제작할 수 있습니다.
예를 들어, 입자 속성(위치, 색상 등)을 실시간으로 계산하거나 게임 데이터(플레이어 위치 등)와 연동하려면 코드 작성이 필요할 수 있습니다.
하지만 대부분의 일반적인 작업은 이미 제공된 모듈과 노드를 활용해 충분히 구현 가능합니다.

나이아가라 시스템에서 CPU와 GPU의 역할 분담은 다음과 같은 파이프라인으로 이루어집니다.
CPU 단계
GPU 단계
렌더링 단계
데이터 피드백
GPU에서 CPU로 데이터 전송

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