BRG는 다음을 수행하는 데 적합한 툴입니다.
다음 표에는 어떤 렌더 파이프라인이 BRG를 지원하는지 나와 있습니다.
| 기능 이름 | URP(유니버설 렌더 파이프라인) | HDRP(고해상도 렌더 파이프라인) | 커스텀 SRP | 빌트인 렌더 파이프라인 |
|---|---|---|---|---|
| BatchRendererGroup | 지원(1) | 지원(1) | 지원(1) | 지원 안 함 |
참고:
Unity는 다음과 같은 환경에서 BRG를 지원합니다.
BRG(BatchRendererGroup)는 화면에 렌더링하기 위해 드로우 커맨드를 생성하는데, 이는 Unity가 최적화된 인스턴스화 드로우 콜을 효율적으로 생성하는 데 필요한 모든 것이 포함된 BRG 전용 개념입니다.
드로우 커맨드에서 인스턴스를 렌더링할 시점을 결정하기 위해 BRG는 필터 설정을 사용합니다. 필터 설정은 인스턴스 자체를 렌더링할 시기뿐만 아니라 각 인스턴스의 특정 면(예: 그림자, 모션 벡터)을 렌더링할 시기를 제어합니다.
동일한 필터 설정은 다수의 드로우 커맨드에 적용될 수 있으므로 BRG는 드로우 범위를 사용하여 다양한 드로우 커맨드에 필터 설정을 적용합니다. 드로우 범위는 연속된 수의 드로우 커맨드와 해당 드로우 커맨드에 적용되는 필터 설정의 인스턴스를 결합한 것입니다. 드로우 범위는 필터 설정에서 Unity가 드로우 커맨드를 렌더링하지 않아야 한다고 판단하는 경우 특히 유용합니다. 이렇게 하면 Unity가 범위 내 모든 드로우 커맨드에 대해 렌더링을 효율적으로 건너뛸 수 있습니다.
특정 인스턴스가 특정 드로우 콜에 속해야 한다는 제한은 없습니다. 동일한 인스턴스(즉, 동일한 인스턴스 인덱스와 batchID를 가진 오브젝트)를 다른 메시와 머티리얼로 여러 번 렌더링할 수 있습니다. 이 방법이 유용한 예시 중 하나는 서로 다른 머티리얼로 서로 다른 하위 메시를 그리지만 동일한 인스턴스 인덱스를 사용하여 드로우 간에 트랜스폼 매트릭스 같은 프로퍼티를 공유하는 것입니다.
BRG를 사용하여 렌더러를 생성하는 방법에 대한 자세한 내용은 BatchRendererGroup으로 렌더러 생성을 참조하십시오.
대부분의 경우 Unity는 스크립터블 렌더 파이프라인에서 호환 가능한 각 DrawRenderers 호출에 대해 플랫폼 레벨의 단일 인스턴스화 드로우 콜로 드로우 커맨드를 렌더링합니다. 하지만 그래픽스 API에 드로우 콜의 크기 제한이 드로우 커맨드의 visibleCount보다 작은 경우에는 그럴 수 없습니다. 이러한 상황에서 Unity는 드로우 커맨드를 여러 인스턴스화된 드로우 콜로 분할합니다.