2014-09-04 3 views
0

현재 DX11을 사용하여 새로운 렌더러 작업을하고 있습니다.
여러 메쉬를 배치하려면 텍스처 지오 레이터를 방지하기 위해 Texture2dArrays로 지오메트리 인스턴스를 사용하고 싶습니다.
이 렌더링을위한 의사 코드가 될 것이다 :Texture2DArray로 일괄 처리

foreach effect in effects 
    foreach batch in batches 
     SetTexture2DArray() 
     SetInstanceBuffer() //Transform & Material (cbuffer) 
     SetVertexBuffer() 
     SetIndexBuffer() 
     DrawIndexed() 

각 메시는 3 개 질감과 형상으로 구성되어 있습니다. 동일한 입력 레이아웃을 가진 메쉬는 하나의 배치로 결합됩니다.
하나의 일괄 처리는 최대 300 개의 메시를 유지하여 일괄 처리 당 900 개의 텍스처를 TexturArray로 가져올 수 있습니다.
다른 크기의 다른 결합 텍스처를 TextureArray에 사용할 수 있습니까?
그렇지 않다면 동일한 입력 레이아웃과 텍스쳐 크기로만 메쉬를 결합 할 수있었습니다.

이것이 일반적으로 좋은 시스템이라고 생각하십니까?

답변

1

텍스처 배열에 대해 각 슬라이스는 동일한 크기 여야합니다.

일반적으로 모델을 병합하면 그리기 호출이 적다는 점은 일반적으로 더 좋지만 각기 다른 프리미티브를 사용하여 하나의 버퍼가 다른 서브 세트를 보유하면 각각의 오버 드로가 발생할 수 있으며 필요에 따라 절두체 컬링을 적용하기가 더 어려워집니다 지오메트리의 양에 따라 어쨌든 보낼 수도 있지만, 현대 카드는 지오메트리를 쉽게 먹을 수 있습니다.) 모든 지오메트리가 항상 표시되면 병합이 좋은 옵션입니다.