"스프라이트 배치"의 기술적 정의는 무엇입니까?


17

스프라이트 배치는 어떻게 정의됩니까? 그림을 그릴 때 작업량을 줄이는 데는 여러 가지 기술이 있으며, 종종 "배칭 (batching)"에 집중되는 것처럼 보입니다. 실제 답변이 없을 수도 있지만 여기서 누군가가 내가 찾지 못한 것을 발견했을 수도 있습니다.

답변:


14

기술적으로 "배칭"은 여러 작업과 해당 데이터를 하나의 데이터 구조에 배치하여 개별적으로가 아니라 한 번에 모두 실행할 수 있습니다.

최신 GPU의 가장 큰 병목은 작동 능력이 아니라 CPU에서 실행되는 게임과 GPU 간의 통신입니다. GPU로 전송되는 각 데이터 패키지에는 오버 헤드가 있지만 작은 패키지의 오버 헤드는 큰 패키지의 오버 헤드만큼 크므로 100 개의 작은 패키지가 아닌 하나의 큰 패키지를 보낼 때 큰 이점이 있습니다. 이것이 바로 일괄 처리입니다. 그 작은 것 중에서 하나의 큰 패키지를 만듭니다.

배치는 스프라이트 당 엄청나게 적은 양의 데이터로 인해 스프라이트에 특히 유용합니다. 4 개의 정점과 4 개의 텍스 좌표 따라서 작은 패키지의 오버 헤드는 비례 적으로 큽니다.


1
대기 시간 문제를 언급하면 ​​+1; 이는 네트워크 트래픽 및 디스크 I / O에도 적용되는 원칙과 거의 동일한 원칙입니다. 일반적으로 대규모 배치는 많은 소규모 배치보다 우월합니다.
Maximus Minimus

9

스프라이트 일괄 처리는 단일 드로우 콜로 GPU에 여러 개의 스프라이트를 제출하는 방법입니다.

다른 답변 중 어느 것도이 작업의 실제 포인트를 지적하지 않습니다 : 상태 변경 최소화 및 GPU 명령 제출. 내가 그리는 텍스처에 각각 100 개의 스프라이트가있는 경우 하드웨어는 한 번에 하나의 스프라이트 만 처리 할 수 ​​있습니다. 수십 또는 수천 개의 셰이더 코어는 거의 사용되지 않으며 GPU는 텍스처 스위치의 렌더링 상태를 구성하는 데 너무 많은 시간을 소비합니다.

모든 스프라이트 이미지를 아틀라스에 넣으면 그리기에 필요한 상태 변경을 최소화 할 수 있습니다. 드라이버는 스프라이트 드로우 요청을 단일 배치로 자동 결합하여 하드웨어를 완전히 활용할 수 있지만 이것이 보장되지는 않습니다.

스프라이트 아틀라스를 사용하고 모든 스프라이트 쿼드가 채워진 단일 VBO를 생성하고 해당 데이터로 단일 드로우 요청을 수행하면 하드웨어가 완전히 활용되고 모든 스프라이트가 병렬로 렌더링됩니다.

스프라이트 일괄 처리는 바로 그 일을 수행합니다. 단일 드로우 콜로 GPU에 제출되는 단일 아틀라스를 사용하여 가능한 많은 스프라이트를 단일 VBO에 배치하여 GPU 사용을 최대화합니다.

하드웨어 배치, 지오메트리 쉐이더 사용 등과 같은 스프라이트 배치를 수행하는 다른 방법과 다른 이점도 있지만 배치의 장점은 드로우 콜당 여러 객체를 그리는 것입니다.


-1 : 상태 변경을 최소화하는 것이 일괄 처리의 "지점"이 아닙니다. OpenGL이 구조화 된 방식에서 오는 요구 사항 일뿐입니다. (텍스처 아틀라스의 요점이지만 요구되지는 않았습니다.)이 질문은 구체적으로 "플랫폼 및 언어와 무관하게"정의를 요구합니다.
야수

따라서 백 버퍼에 모든 것을 그리는 방법은 먼저이 문제를 어떻게 해결합니까? 데이터가 메모리의 단일 이미지로 한 번에 하나씩 조작 된 다음 전면 버퍼 푸시되지 않습니까? 내 이해가 약간 결함이 있다고 생각합니다.
Bloodyaugust

4
Mr. Beast : OpenGL 또는 플랫폼 또는 언어와는 아무 관련이 없습니다. 모든 언어와 모든 언어를 사용하는 모든 그래픽 API에서 하드웨어 자체가 실제로 작동하는 방식입니다.
Sean Middleditch 1

6

이것은 엄격하게 정의 된 기술 용어가 아닙니다. 일괄 처리는 기본적으로 여러 작업을 개별적으로 수행하지 않고 집합으로 수행하는 시스템이며 종종 더 효율적이기 때문에 수행됩니다. 효율성 향상은 일반적으로 작업에 필요한 일부 또는 모든 컨텍스트를 재사용 할 수 있기 때문에 발생합니다.

스프라이트 일괄 처리는 여러 스프라이트를 한 번에 그릴 수 있고 그로부터 효율성을 얻을 수있는 시스템입니다. 일반적으로 스프라이트 배치는 모두 동일한 텍스처를 사용하므로 텍스처를 변경하지 않고 배치에서 모든 스프라이트를 그릴 수 있습니다. 이는 상대적으로 느린 작업입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.