MESH DATA INTERFACE

Mesh Data Interface 샘플링

Niagara에서 Mesh Data Interface를 쓰면 메시 표면을 따라 입자를 만들 수 있지만, 샘플링 대상, triangle/vertex 선택, skeletal mesh 갱신, local/world 좌표, GPU/CPU 제한이 맞지 않으면 파티클이 엉뚱한 위치에서 튀거나 사라진다.

Mesh static · skeletal Sample vertex · triangle Space local ↔ world Spawn particle output CPU/GPU Gate invalid mesh fallback
01

대상 메시 선택

Static Mesh인지 Skeletal Mesh인지에 따라 갱신 시점과 접근 가능한 데이터가 달라진다.

스켈레탈 메시 변형은 프레임별 위치가 중요하다
02

샘플링 방식 결정

vertex, triangle, surface area, socket 중 효과 목적에 맞는 위치 선택 방식을 고른다.

vertex 샘플링은 밀도 분포가 메시 구조에 묶인다
03

좌표계 맞추기

샘플 위치와 velocity가 local space인지 world space인지 시스템 설정과 맞춘다.

좌표계가 틀리면 actor 이동 때 입자가 밀린다
04

데이터 유효성 처리

메시가 비어 있거나 교체되는 순간의 fallback 위치와 spawn 중단 기준을 둔다.

invalid mesh는 조용한 0점 생성으로 보일 수 있다
05

성능과 플랫폼

GPU sim에서 사용 가능한 interface와 비용을 확인하고 particle count를 제한한다.

보이는 효과가 좋아도 데이터 접근 비용이 병목이 될 수 있다
Static Mesh
고정 표면 샘플링 변하지 않는 표면 분포를 기준으로 먼지, 불꽃, 표면 입자를 만든다.
LOD 변화가 분포에 영향을 줄 수 있다
Skeletal Mesh
애니메이션 표면 bone 변형과 component transform을 반영해 움직이는 표면에서 샘플링한다.
갱신 타이밍을 확인한다
Coordinate
공간 변환 local과 world 위치, normal, velocity 변환이 일관되어야 한다.
시스템 local space 설정과 맞춘다
Fallback
잘못된 대상 처리 mesh 미지정, streaming 지연, 교체 중 상태를 안전하게 거부하거나 대체한다.
0,0,0 폭발을 막는다

효과 확인

대상 교체 메시를 런타임에 바꾸거나 숨길 때 파티클이 깨지지 않는지 본다.
좌표 이동 actor를 회전·이동·스케일해도 샘플 위치가 표면을 따라가는지 확인한다.
시뮬레이션 종류 CPU와 GPU sim에서 같은 data interface가 지원되는지 따로 확인한다.