Version: Unity 6.0 (6000.0)
언어 : 한국어
파티클 시스템의 커스텀 데이터 스트림
파티클 시스템 표준 셰이더 커스텀 버텍스 스트림의 예

파티클 시스템 커스텀 버텍스 스트림

셰이더를 직접 작성하는 것이 편한 경우 Renderer 모듈커스텀 버텍스 스트림을 사용하여 더 광범위한 데이터를 커스텀 셰이더로 전달하도록 파티클 시스템을 설정합니다.

속도, 크기 및 중앙 위치와 같은 다양한 빌트인 데이터 스트림을 선택할 수 있습니다. 강력한 커스텀 셰이더를 생성할 수 있는 기능 외에도 이러한 스트림은 다음과 같은 일반적인 이점을 제공합니다.

  • 노멀 맵 파티클을 지원하려면 탄젠트 스트림을 사용합니다.
  • 컬러를 제거한 다음 탄젠트 UV2AnimBlend 스트림을 추가하여 파티클에 스탠다드 셰이더를 사용할 수 있습니다.
  • 플립북 선형 텍스처 블렌딩을 간편하게 수행하려면 UV2 및 AnimBlend 스트림을 추가하고 파티클/애니메이션 알파 블렌디드 셰이더를 연결합니다. 설정 방법은 아래의 예제 스크린샷을 참조하십시오.

스크립트에서 채울 수 있는 두 개의 완전 맞춤형 파티클당 데이터 스트림(ParticleSystemVertexStreams.Custom1ParticleSystemVertexStreams.Custom2)도 있습니다. 데이터 배열을 사용하여 SetCustomParticleDataGetCustomParticleData를 호출합니다. 두 가지 방법으로 이를 사용할 수 있습니다.

  • 사용자 데이터를 파티클에 연결(예를 들어, 각 파티클에 ‘health’ 값 연결)하여 스크립트에서 커스텀 동작을 만듭니다.
  • 다른 스트림을 셰이더로 전송하는 것과 동일한 방식으로 두 커스텀 스트림 중 하나를 추가하여 이 데이터를 셰이더로 전달합니다(ParticleSystemRenderer.EnableVertexStreams 참조). 첫 번째 예를 살펴보면 커스텀 체력 속성으로 일종의 시각 효과를 구현하고 스크립트 기반 게임 로직을 구현할 수도 있습니다.

버텍스 스트림을 추가할 때, Unity는 셰이더에서 올바른 데이터를 읽는 데 도움이 되는 정보를 각 항목 옆에 대괄호로 묶어서 제공합니다.

괄호 안에 있는 각 항목은 셰이더에서 지정해야 하는 버텍스 셰이더 입력에 해당합니다. 이 설정의 올바른 입력 구조는 다음과 같습니다.

            struct appdata_t {
                float4 vertex : POSITION;
                float3 normal : NORMAL;
                fixed4 color : COLOR;
                float4 texcoords : TEXCOORD0;
                float texcoordBlend : TEXCOORD1;
            };

UV와 UV2는 모두 TEXCOORD0의 다른 부분에서 전달되므로 양측에 단일 선언을 사용합니다. 셰이더 각각에 액세스하려면 xy 및 zw 스위즐을 사용합니다. 이를 통해 버텍스 데이터를 효율적으로 패킹할 수 있습니다.

추가 리소스

파티클 시스템의 커스텀 데이터 스트림
파티클 시스템 표준 셰이더 커스텀 버텍스 스트림의 예