셰이더를 직접 작성하는 것이 편한 경우 Renderer 모듈의 커스텀 버텍스 스트림을 사용하여 더 광범위한 데이터를 커스텀 셰이더로 전달하도록 파티클 시스템을 설정합니다.
속도, 크기 및 중앙 위치와 같은 다양한 빌트인 데이터 스트림을 선택할 수 있습니다. 강력한 커스텀 셰이더를 생성할 수 있는 기능 외에도 이러한 스트림은 다음과 같은 일반적인 이점을 제공합니다.
스크립트에서 채울 수 있는 두 개의 완전 맞춤형 파티클당 데이터 스트림(ParticleSystemVertexStreams.Custom1 및 ParticleSystemVertexStreams.Custom2)도 있습니다. 데이터 배열을 사용하여 SetCustomParticleData 및 GetCustomParticleData를 호출합니다. 두 가지 방법으로 이를 사용할 수 있습니다.
버텍스 스트림을 추가할 때, Unity는 셰이더에서 올바른 데이터를 읽는 데 도움이 되는 정보를 각 항목 옆에 대괄호로 묶어서 제공합니다.
괄호 안에 있는 각 항목은 셰이더에서 지정해야 하는 버텍스 셰이더 입력에 해당합니다. 이 설정의 올바른 입력 구조는 다음과 같습니다.
struct appdata_t {
float4 vertex : POSITION;
float3 normal : NORMAL;
fixed4 color : COLOR;
float4 texcoords : TEXCOORD0;
float texcoordBlend : TEXCOORD1;
};
UV와 UV2는 모두 TEXCOORD0의 다른 부분에서 전달되므로 양측에 단일 선언을 사용합니다. 셰이더 각각에 액세스하려면 xy 및 zw 스위즐을 사용합니다. 이를 통해 버텍스 데이터를 효율적으로 패킹할 수 있습니다.