2011-07-06 3 views
1

다른 유형의 정보를 표시하는 여러 "패널"로 구성된 C++ DirectX 10 응용 프로그램을 시작할 준비를하고 있습니다. 하나의 RenderTargetView에서 여러 뷰포트를 실험 해보았습니다. 그러나 한 번에 단일 뷰포트를 지우는 방법에 대한 확실한 답을 찾을 수 없습니다. 내 응용 프로그램의 이러한 패널 (뷰포트)은 일부 영역에서 겹치기 때문에 각 뷰포트를 지우면 "아래에서 위로"그릴 수 있기를 원합니다. 그래서 아래 패널의 그림이 높은 것들. DirectX 9에서는 현재 설정된 뷰포트 만 지우는 Clear() 메서드가 장치 개체에있는 것으로 보입니다. DirectX 10은 ClearRenderTargetView()를 사용하여 전체 도면 영역을 지우고 DirectX 9에서 수행 한 것과 동일한 다른 옵션을 찾을 수 없습니다.DirectX 10의 단일 뷰포트 지우기

DirectX 10에서 그리기 영역 내 뷰포트/사각형 만 지울 수 있습니까? 한 사람은 그 공간에 쿼드를 그릴 수있는 유일한 방법이라고 추측했다. 또 다른 가능성은 각 패널에 대해 별도의 RenderTargetView를 갖는 것일 수도 있지만, 별도의 깊이/스텐실 버퍼 (다른 부분이 오해가 아닌 한)와 같은 다른 중복 리소스가 필요하므로 피하고 싶습니다.

도움이 될 것입니다. 감사!

답변

1

"뷰포트"당 하나의 렌더링 타겟을 사용하고 마지막보기를 위해 쿼드를 사용하여 함께 합성하는 것이 좋습니다. 나는 DX 10에서 명확한 방법을 알고있다.

또한 here 문서에 따르면 "렌더링 대상 배열의 배열은 ID3D10Device :: OMSetRenderTargets에 전달 될 수 있지만 모든 렌더링 대상 뷰 단일 깊이 스텐실 뷰에 해당합니다. "

희망이 도움이됩니다.

+0

네, 도움이됩니다. 나는 여러개의 렌더 타겟 뷰를 사용하여 더 많은 독서를 할 것이다. 나는 왜 렌더링 타겟 뷰가 윈도우의 다른 영역을 그리는 데 사용될 수 있는지, 렌더링 대상 뷰와 뷰포트가 모두 존재하는지에 대해 조금 혼란스러워합니다. –

+0

"모든 렌더링 대상은 모든 크기 (폭 및 높이, 3D 또는 배열 유형의 배열 크기)에서 동일한 크기 여야합니다." –

+0

그것은 당신이 링크 한 동일한 기사에서 온 것입니다. 따라서 사용자 인터페이스 패널의 크기가 다양하기 때문에 이것이 내가 원하는 것이라고 생각하지 않습니다. –

0

적절한 블렌드 상태 설정과 정사각형 메쉬 (또는 다른 모양의 메쉬)와 함께 셰이더를 만들고 지우고 자하는 부분을 지우는 데 사용할 수 있습니까? 나는 이것을 시도하지 않았지만 그것을 할 수 있다고 생각합니다.