PART 3 · 강의 1/3

Sprite & Mesh 렌더러

Niagara의 시뮬레이션-렌더링 분리 아키텍처와 가장 기본적인 두 렌더러를 학습합니다.

01

시뮬레이션-렌더링 분리

Niagara 렌더러의 핵심 설계 원칙

Niagara의 가장 중요한 아키텍처 특징 중 하나는 시뮬레이션과 렌더링이 완전히 분리되어 있다는 점입니다. Cascade에서는 파티클 시뮬레이션과 렌더링이 결합되어 있었지만, Niagara에서는 하나의 시뮬레이션에 여러 렌더러를 동시에 연결할 수 있습니다.

다중 렌더러 예시
Fire Emitter // 하나의 파티클 시뮬레이션에 3개의 렌더러 연결 Render: └ Sprite Renderer // 불꽃 스프라이트 표시Light Renderer // 불빛 효과Mesh Renderer // 불씨 파편 메시
렌더러 타입 용도 비용
Sprite Renderer 카메라를 향하는 2D 빌보드 낮음
Mesh Renderer 3D 스태틱 메시 인스턴싱 중간
Ribbon Renderer 파티클을 연결하는 띠/트레일 중간
Light Renderer 파티클 위치에 동적 라이트 생성 높음
Component Renderer 임의의 UE 컴포넌트 스폰 매우 높음
02

Sprite Renderer 상세

가장 기본적이고 가벼운 렌더러

Sprite Renderer는 각 파티클을 카메라를 향하는 2D 쿼드(빌보드)로 표시합니다. 가장 가볍고 일반적인 렌더러입니다.

주요 파라미터

파라미터 타입 설명
Material UMaterial 파티클 표면에 적용할 머티리얼
Alignment Enum Unaligned(카메라 향함), Velocity Aligned, Custom Alignment
Facing Mode Enum Face Camera, Face Camera Position, Custom Facing Vector
Sort Mode Enum None, View Depth, View Distance, Custom Ascending/Descending
Sub Image Size Vector2 텍스처 아틀라스의 행/열 수 (스프라이트 시트 애니메이션)
Cutout Texture UTexture2D 알파 기반 자동 메시 생성으로 오버드로우 감소

Sprite Attribute 바인딩

Sprite Renderer가 읽는 Particle Attribute
// 자동 바인딩되는 Attribute (기본값) Position Binding : Particles.Position Color Binding : Particles.Color Sprite Size Binding : Particles.SpriteSize Sprite Rotation Binding: Particles.SpriteRotation Velocity Binding : Particles.Velocity // Alignment에 사용 Sub Image Index : Particles.SubImageIndex // 스프라이트 시트 프레임 Dynamic Material 0 : Particles.DynamicMaterialParameter // 머티리얼 전달 // 커스텀 바인딩으로 변경 가능 // 예: 커스텀 Attribute를 Position에 바인딩 Position Binding : Particles.CustomPosition
Sub Image 애니메이션

스프라이트 시트 애니메이션을 사용하려면: 1) Sub Image Size를 텍스처의 행/열 수로 설정 (예: 4x4 = 16프레임), 2) Particle Update에서 SubUV Animation 모듈을 추가, 3) 머티리얼에서 SubUV를 지원하는 Particle SubUV 노드 사용.

03

Mesh Renderer 상세

3D 메시 인스턴싱 렌더러

Mesh Renderer는 각 파티클을 3D Static Mesh로 표시합니다. GPU 인스턴싱을 사용하여 동일한 메시를 대량으로 효율적으로 렌더링합니다.

주요 파라미터

파라미터 설명
Particle Mesh 렌더링할 Static Mesh 에셋. 여러 메시를 배열로 추가 가능.
Override Materials 메시의 머티리얼을 오버라이드. Niagara 전용 머티리얼 적용.
Facing Mode Default(파티클 회전 사용), Velocity, Camera Position 등
Sort Mode 반투명 메시의 렌더링 순서 제어
Enable Mesh Flipping Scale로 메시를 뒤집어 다양성 추가
LOD Level 사용할 LOD 레벨 (0이 최고 품질)
Mesh Renderer 설정 예시: 파편 이펙트
Mesh Renderer { Meshes: [ SM_Debris_01, // 파편 메시 1 SM_Debris_02, // 파편 메시 2 SM_Debris_03 // 파편 메시 3 ] // 파티클마다 Particles.MeshIndex로 메시 선택 Override Materials: M_Debris_Niagara Facing Mode: Default Sort Mode: View Depth } // Particle Spawn에서 랜덤 메시 선택 Set (Particles.MeshIndex) = Uniform Ranged Int Min = 0, Max = 2 // Particle Spawn에서 랜덤 회전 설정 Initial Mesh Orientation Rotation = Uniform Ranged Vector Min = (0, 0, 0), Max = (360, 360, 360)
Sprite vs Mesh 선택 기준

Sprite: 연기, 불꽃, 먼지 등 부드러운 볼륨 이펙트. 대량의 파티클에 적합. Mesh: 파편, 돌조각, 잎사귀 등 명확한 형태의 오브젝트. 물리적 존재감이 필요할 때 사용. Mesh는 Sprite보다 렌더링 비용이 높으므로 파티클 수를 제한하세요.

04

Material Binding

파티클 데이터를 머티리얼에 전달

Niagara 파티클의 Attribute를 머티리얼 파라미터로 전달하여 파티클마다 다른 셰이딩 효과를 만들 수 있습니다.

Dynamic Material Parameter

머티리얼 연동 설정
// 1. 머티리얼에 Dynamic Parameter 노드 추가 Material Editor: DynamicParameter 노드 추가 Param1 (R): EmissiveStrength Param2 (G): DissolveAmount Param3 (B): CustomData Param4 (A): Unused // 2. Niagara에서 파티클에 Dynamic Material Parameter 설정 Particle Spawn / Update: Set (Particles.DynamicMaterialParameter) = float4(EmissiveValue, DissolveValue, 0, 0) // 3. Renderer에서 바인딩 확인 Sprite/Mesh Renderer: Dynamic Material Parameters → Particles.DynamicMaterialParameter

Particle Color 바인딩

머티리얼에서 Particle Color 노드를 사용하면, Niagara의 Particles.Color Attribute가 자동으로 전달됩니다. 별도 설정 없이 바로 사용 가능합니다.

머티리얼 호환성

Niagara에서 사용할 머티리얼은 Used with Niagara Sprites / Niagara Mesh Particles 옵션이 활성화되어야 합니다. Material Details에서 Usage 섹션을 확인하세요. 이 옵션이 꺼져 있으면 기본 머티리얼이 대신 사용됩니다.

SUMMARY

핵심 요약

  • Niagara는 시뮬레이션과 렌더링이 분리되어 하나의 Emitter에 여러 렌더러를 동시에 연결할 수 있습니다.
  • Sprite Renderer는 카메라를 향하는 2D 빌보드로, 연기/불꽃 등 부드러운 이펙트에 적합합니다.
  • Mesh Renderer는 GPU 인스턴싱으로 3D 메시를 표시하며, 파편/물체 등 물리적 형태에 적합합니다.
  • 렌더러는 Attribute Binding으로 파티클 데이터를 읽으며, 커스텀 바인딩으로 변경 가능합니다.
  • Dynamic Material Parameter를 통해 파티클 데이터를 머티리얼에 전달할 수 있습니다.
  • Niagara 전용 머티리얼은 Usage에서 Used with Niagara 옵션을 활성화해야 합니다.
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Sprite Renderer 설정 최적화

Sprite Renderer의 Alignment(Camera Facing, Velocity Aligned), Sort Mode(By Distance, By Age), SubImage 설정을 변경하며 불꽃 이펙트에 적합한 조합을 찾으세요. SubUV 애니메이션도 적용해보세요.

실습 2: Mesh Renderer로 파편 시스템

Mesh Renderer를 추가하고 Static Mesh(작은 돌 메시)를 할당하세요. Particle의 Mesh Orientation을 Random으로 초기화하고, Update에서 회전을 추가하여 날아가며 회전하는 파편을 구현하세요.

심화 과제: Sprite + Mesh 복합 렌더러

하나의 이미터에 Sprite Renderer(글로우/빛번짐)와 Mesh Renderer(실제 파편)를 동시에 추가하여, 발광하며 날아가는 파편 이펙트를 만드세요. 각 렌더러의 머티리얼을 독립적으로 설정하세요.