드문 경우에 특정 게임 오브젝트를 의도적으로 SRP 배처와 호환되지 않도록 만들 수도 있습니다. SRP 배처와 호환되지 않는 GPU 인스턴싱을 사용하려는 경우를 예로 들 수 있습니다. 정확히 동일한 머티리얼로 여러 개의 동일한 메시를 렌더링하려는 경우 GPU 인스턴싱이 SRP 배처보다 더 효율적일 수 있습니다. GPU 인스턴싱을 사용하려면 다음 중 하나를 수행해야 합니다.
다음 두 가지 방법으로 게임 오브젝트의 SRP 배처 호환성을 제거할 수 있습니다.
팁: SRP 배처 대신 GPU 인스턴싱을 사용하는 경우, 프로파일러를 사용하여 GPU 인스턴싱이 SRP 배처보다 애플리케이션에 더 효율적인지 확인하십시오.
수작업으로 작성한 셰이더와 Shader Graph 셰이더를 모두 SRP 배처와 호환되지 않도록 만들 수 있습니다. 그러나 Shader Graph 셰이더의 경우 Shader Graph를 자주 변경하고 다시 컴파일하면 대신에 렌더러를 호환되지 않게 하는 것이 더 간단합니다.
Unity 셰이더와 SRP 배처의 호환성을 제거하려면 다음과 같이 셰이더 소스 파일을 변경해야 합니다.
Properties 블록에 새 머티리얼 프로퍼티 선언을 추가합니다. 새 머티리얼 프로퍼티를 UnityPerMaterial 상수 버퍼에 선언하지 마십시오.머티리얼 프로퍼티는 변경할 필요가 없습니다. UnityPerMaterial 상수 버퍼에 존재하지 않는 머티리얼 프로퍼티만 있으면 셰이더가 SRP 배처와 호환되지 않습니다.
경고: Shader Graph를 사용하는 경우, Shader Graph를 편집하고 다시 컴파일할 때마다 이 프로세스를 반복해야 합니다.
개별 렌더러가 SRP 배처와 호환되지 않도록 만들 수 있습니다. 이렇게 하려면 렌더러에 MaterialPropertyBlock을 추가합니다.