GPU 인스턴싱은 단일 드로우 콜에서 동일한 재질의 메시 사본을 여러 개 렌더링하는 드로우 콜 최적화 방법입니다. 각 메시 사본을 인스턴스라고 합니다. 씬 내에 여러 번 나타나는 나무나 덤불과 같은 것을 드로우하는 데 유용합니다.
GPU instancing renders identical meshes in the same draw call. To add variation and reduce the appearance of repetition, each instance can have different properties, such as Color or Scale. Draw calls that render multiple instances appear in the Frame Debugger as Render Mesh (instanced).
이 섹션은 GPU 인스턴싱의 플랫폼, 렌더 파이프라인, SRP 배처 호환성을 포함하고 있습니다.
GPU 인스턴싱은 WebGL 1.0을 제외한 모든 플랫폼에서 사용할 수 있습니다.
기능 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 스크립터블 렌더 파이프라인(SRP) |
---|---|---|---|---|
GPU 인스턴싱 | 지원 | 지원(1) | 지원(1) | 지원(1) |
참고:
GPU 인스턴싱은 SRP 배처와 호환되지 않습니다. SRP 배처는 GPU 인스턴싱보다 우선합니다. 게임 오브젝트가 SRP 배처와 호환되는 경우 Unity는 GPU 인스턴싱이 아닌 SRP 배처를 사용하여 렌더링합니다. 최적화 방법 우선 순위에 대한 자세한 내용은 최적화 우선 순위를 참조하십시오.
프로젝트에서 SRP 배처를 사용하고 게임 오브젝트에 GPU 인스턴싱을 사용하려는 경우 다음 중 하나를 수행할 수 있습니다.
Unity는 동일한 메시와 머티리얼을 공유하는 게임 오브젝트에 GPU 인스턴싱을 사용합니다. 메시와 머티리얼을 인스턴스화하려면 다음 단계를 따르십시오.
머티리얼에 GPU 인스턴싱을 사용하려면 인스펙터에서 Enable GPU Instancing 옵션을 선택합니다.
GPU instancing supports Unity’s Baked Global Illumination system. Unity Standard Shaders and surface shaders support GPU instancing and Unity’s Baked Global Illumination system by default.
각 GPU 인스턴스는 다음 소스 중 하나에서 전역 조명을 지원합니다.
GPU 인스턴싱은 다음과 함께 자동으로 작동합니다.
To enable Light Probe rendering for Graphics.RenderMeshInstanced
, provide a MaterialPropertyBlock that includes the Probe data. For more information and code examples, see LightProbes.CalculateInterpolatedLightAndOcclusionProbes.
Alternatively, you can pass an LPPV component reference and LightProbeUsage.UseProxyVolume to Graphics.RenderMeshInstanced
. When you do this, all instances sample the volume for the L0 and L1 bands of the Light Probe data. If you want to supplement L2 data and occlusion data, use a MaterialPropertyBlock
. For more information, see Light Probes: Technical Information.
버텍스 수가 적은 메시는 GPU 인스턴싱을 사용하여 효율적으로 처리할 수 없습니다. GPU가 GPU 리소스를 완전히 사용하는 방식으로 작업을 배포할 수 없기 때문입니다. 이러한 비효율적인 처리는 퍼포먼스에 부정적인 영향을 미칠 수 있습니다. 비효율성이 시작되는 임계값은 GPU에 따라 다르지만 일반적으로 256개 미만의 버텍스를 가진 메시에는 GPU 인스턴싱을 사용하지 않습니다.
버텍스 수가 적은 메시를 여러 번 렌더링하려는 경우 모든 메시 정보가 포함된 단일 버퍼를 생성하여 메시를 드로우하는 것이 가장 좋습니다.