Version: Unity 6.0 (6000.0)
언어 : 한국어
URP에서 SRP 배처 문제 해결
URP에서 CPU의 렌더링 작업 줄이기

URP의 게임 오브젝트에 SRP 배처 호환성 제거

드문 경우에 특정 게임 오브젝트를 의도적으로 SRP 배처와 호환되지 않도록 만들 수도 있습니다. SRP 배처와 호환되지 않는 GPU 인스턴싱을 사용하려는 경우를 예로 들 수 있습니다. 정확히 동일한 머티리얼로 여러 개의 동일한 메시를 렌더링하려는 경우 GPU 인스턴싱이 SRP 배처보다 더 효율적일 수 있습니다. GPU 인스턴싱을 사용하려면 다음 중 하나를 수행해야 합니다.

  • Graphics.RenderMeshInstanced를 사용합니다.
  • SRP 배처 호환성을 수동으로 제거하고 머티리얼에 GPU 인스턴싱을 활성화합니다.

다음 두 가지 방법으로 게임 오브젝트의 SRP 배처 호환성을 제거할 수 있습니다.

  • 셰이더를 호환되지 않게 합니다.
  • 렌더러를 호환되지 않게 합니다.

: SRP 배처 대신 GPU 인스턴싱을 사용하는 경우, 프로파일러를 사용하여 GPU 인스턴싱이 SRP 배처보다 애플리케이션에 더 효율적인지 확인하십시오.

셰이더 호환성 제거

수작업으로 작성한 셰이더와 Shader Graph 셰이더를 모두 SRP 배처와 호환되지 않도록 만들 수 있습니다. 그러나 Shader Graph 셰이더의 경우 Shader Graph를 자주 변경하고 다시 컴파일하면 대신에 렌더러를 호환되지 않게 하는 것이 더 간단합니다.

Unity 셰이더와 SRP 배처의 호환성을 제거하려면 다음과 같이 셰이더 소스 파일을 변경해야 합니다.

  1. 직접 작성한 셰이더의 경우 셰이더 소스 파일을 엽니다. Shader Graph 셰이더의 경우 Shader Graph의 컴파일된 셰이더 소스 코드를 새 셰이더 소스 파일로 복사합니다. 애플리케이션에서 새로운 셰이더 소스 파일을 Shader Graph 대신 사용합니다.
  2. 셰이더의 Properties 블록에 새 머티리얼 프로퍼티 선언을 추가합니다. 새 머티리얼 프로퍼티를 UnityPerMaterial 상수 버퍼에 선언하지 마십시오.

머티리얼 프로퍼티는 변경할 필요가 없습니다. UnityPerMaterial 상수 버퍼에 존재하지 않는 머티리얼 프로퍼티만 있으면 셰이더가 SRP 배처와 호환되지 않습니다.

경고: Shader Graph를 사용하는 경우, Shader Graph를 편집하고 다시 컴파일할 때마다 이 프로세스를 반복해야 합니다.

렌더러 호환성 제거

개별 렌더러가 SRP 배처와 호환되지 않도록 만들 수 있습니다. 이렇게 하려면 렌더러에 MaterialPropertyBlock을 추가합니다.

URP에서 SRP 배처 문제 해결
URP에서 CPU의 렌더링 작업 줄이기