Version: Unity 6.0 (6000.0)
언어 : 한국어
URP에서 인스턴스당 데이터에 액세스하는 DOTS 인스턴싱 셰이더 예시
URP에서 DOTS 인스턴싱 셰이더의 UNITY_DOTS_INSTANCED_PROP 매크로 사용 예시

URP의 상수 데이터에 액세스하는 DOTS 인스턴싱 셰이더 예시

이 예제에서 다음을 참고하십시오.

  • Color의 메타데이터 값은 0x00001000입니다.
  • 인스턴스 인덱스는 5입니다.
  • 인스턴스 0의 데이터는 주소 0x1000에서 시작합니다.
  • 최상위 비트가 설정되지 않았으므로 인스턴스 5의 데이터는 인스턴스 0과 동일한 주소에 있습니다.

최상위 비트가 설정되지 않았으므로 기본값으로 폴백되는 액세서 매크로는 unity_DOTSInstanceData에 액세스하지 않습니다. 이는 다음을 의미합니다.

  • c0에는 unity_DOTSInstanceData 주소 0x1000 값이 포함됩니다.
  • c1은 일반 머티리얼 프로퍼티 Color의 값을 포함하며, Color 프로퍼티가 없는 경우 컴파일 오류가 발생합니다.
  • c2는 명시적 기본값으로 전달되었으므로 (1, 2, 3, 4)를 포함합니다.
void ExampleConstant()
{
    // rawMetadataValue will contain 0x00001000
    uint rawMetadataValue = UNITY_DOTS_INSTANCED_METADATA_NAME(float4, Color);
    float4 c0 = UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, Color);
    float4 c1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, Color);
    float4 c2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_CUSTOM_DEFAULT(float4, Color, float4(1, 2, 3, 4));
}
URP에서 인스턴스당 데이터에 액세스하는 DOTS 인스턴싱 셰이더 예시
URP에서 DOTS 인스턴싱 셰이더의 UNITY_DOTS_INSTANCED_PROP 매크로 사용 예시