W d3d11 można powiązać wiele celów renderowania ID3D11DeviceContext :: OMSetRenderTargets . Ale dlaczego chcesz to zrobić?
W d3d11 można powiązać wiele celów renderowania ID3D11DeviceContext :: OMSetRenderTargets . Ale dlaczego chcesz to zrobić?
Odpowiedzi:
Gdy wiele obiektów renderujących jest powiązanych, każdy z nich może zostać zapisany osobno przez moduł cieniujący piksele - nie jest (koniecznie) przypadkiem, że wszystkie cele renderowania otrzymają ten sam obraz. Możesz zapisać tylko czerwony komponent do jednego wyjścia, a tylko niebieski do innego, i tak dalej.
Jest to używane przy wdrażaniu odroczonego renderowania, na przykład: informacje o pozycji, normalności, kolorze itp. Są zapisywane we własnym celu renderowania.
Dodatkową korzyścią wynikającą z używania wielu celów renderowania, tak jak w renderowaniu odroczonym, jak wspomniano Josh, jest to, że wysyłasz geometrię sceny do modułu cieniującego wierzchołków tylko raz i stosujesz go do różnych wyników modułu cieniującego piksele, zamiast ponownego wysyłania geometrii dla każdego wyjścia potrzeba. Oszczędza to dużo czasu obliczeń dla GPU. Kompromisem dla szybszej wydajności GPU jest większe zużycie pamięci bufora ramek.