В d3d11 вы можете связать несколько целей рендеринга ID3D11DeviceContext :: OMSetRenderTargets . Но почему вы хотите это сделать?
В d3d11 вы можете связать несколько целей рендеринга ID3D11DeviceContext :: OMSetRenderTargets . Но почему вы хотите это сделать?
Ответы:
Когда несколько целей рендеринга связаны, каждая из них может быть записана индивидуально с помощью пиксельного шейдера - это не (обязательно) случай, когда все цели рендеринга получат одно и то же изображение. Вы можете записать только красный компонент в один вывод, только синий в другой и так далее.
Это используется при реализации отложенного рендеринга, например: информация о положении, нормале, цвете и т. Д. Записывается в свою собственную цель рендеринга.
Дополнительным преимуществом использования нескольких целей рендеринга, как в случае отложенного рендеринга, как упоминал Джош, является то, что вы отправляете геометрию сцены в вершинный шейдер только один раз и применяете ее к различным выходным данным пиксельных шейдеров, вместо того, чтобы повторно отправлять геометрию для каждого выходного файла. нужно. Это экономит много вычислительного времени на GPU. Компромисс для более быстрой работы GPU - более высокое потребление памяти кадрового буфера.