현재 OpenGL 렌더링 엔진을 업그레이드하고 구조 조정하는 중입니다. 엔진은 건축 데이터 (건물이있는 건물)의 큰 장면을 시각화하는 데 사용되며 물체의 양이 다소 커질 수 있습니다. 어떤 건물의 경우와 마찬가지로 벽에는 많은 폐색 된 물체가 있으며 자연적으로는 같은 방에있는 물체 만 보거나 외부에있는 경우 외부 물체 만 볼 수 있습니다. 이렇게하면 많은 수의 물체가 가려져 가려움과 절두체 컬링 (culling and frustum culling)을 통해 가려져야합니다.렌더링의 최신 기술 컬링 및 일괄 처리 기술
동시에 렌더링 배치에서 일괄 처리 할 수있는 많은 반복 형상과 인스턴스 렌더링으로 렌더링 할 수있는 많은 객체가 있습니다.
내가 보는 방식대로 렌더링 배치와 컬링을 최적의 방식으로 결합하는 것은 어려울 수 있습니다. 동일한 VBO에서 너무 많은 객체를 배치하면 해당 배치 렌더링을 건너 뛰기 위해 CPU에서 객체를 제거하는 것이 어렵습니다. 동시에 CPU에 대한 도용을 건너 뛰면 많은 객체가 보이지 않는 동안 GPU에 의해 처리됩니다. CPU를 더 쉽게 추월하기 위해 일괄 처리를 건너 뛰면 원치 않는 많은 양의 렌더링 호출이 발생합니다.
나는 현대의 그래픽에서 이러한 문제가 어떻게 해결되는지에 대한 기존의 기술과 이론에 대한 연구를 해왔지만 구체적인 해결책을 찾지 못했습니다. 동료와 내가 생각해 낸 아이디어는 일괄 적으로 서로 가까이있는 물체로 배치를 제한하는 것이 었습니다. 이것은 oct-tree를 사용하여 단순화되고 최적화 될 수 있습니다.
사람은 최신 그래픽 엔진의 상태에서 장면 관리, 컬링, 일괄 처리 등에 사용되는 기술에 대한 지침이 있습니까?
나는 현대 그래픽 엔진에 대한 지식이 없다는 말로 시작하겠습니다. 그러나 이것은 단일 솔루션이없는 문제처럼 들리지만 대신 패치 적용과 여러 시나리오를 함께 전환하여 주어진 시나리오에 대해 최상의 품질/성능을 제공함으로써 해결할 수 있습니다. 압박을받을 때 품질과 성능이 항상 상호 배타적이기 때문입니다. 저는 대개 다차원 친화적 인 블록 (당신을 위해 : rooms)에 함께 모든 것을 배치하여 (!) 텍스쳐 배열을 사용하여 그리기 콜을 해결합니다. 그리고 겹침 선은 정적 아키텍처 환경에서 매우 유용 할 수 있습니다. –