728x90

모두가 알고있듯이 OMSetRenderTargets()의 사용법은 아래와 같다.


m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);


Rendering();


m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);


Rendering();



이 DeferredContext에서도 동일하게 OMSetRenderTargets() 함수가 있었기 때문에, 아무 생각 없이 아래와 같이 만들었었다.


m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);

for (int i = 0; i < MAX_DEFERRED_COUNT; ++i)

    m_pDeferredContext[i]->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);


Rendering();


m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);

for (int i = 0; i < MAX_DEFERRED_COUNT; ++i)

    m_pDeferredContext[i]->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);


Rendering();



그랬더니, 엄청난 메모리 증가량을 볼 수 있었다. ㅎㅎ....


결국 확인해 보니, DeferredContext에 대해서는 별도의 OMSetRenderTargets()를 설정하지 않아도 문제없이


여러 개의 RenderTarget에 그리는 것을 확인하였다.

728x90

+ Recent posts