2012-04-05 10 views
4

Разработанный графический движок развил основное узкое место, которое преобразуется матрицей на вершинах (практически не имеет статических вершин). До сих пор я преобразовывал вершины с процессором и обновлял буфер вершин каждый кадр (копирование данных является небольшим узким местом, но до сих пор управляемо).Получение преобразованных вершин из графического процессора в DirectX 10/11

Итак, я думал, могу ли я просто сохранить меш-буфер внутри GPU, я мог бы преобразовать вершины туда и вернуть этот преобразованный набор вершин в основную память для другой обработки (для последующей обработки требуется немного больше межсоединений чем позволяют графические шейдеры). Это может устранить узкое место в текущем коде.

Любые советы о том, как это сделать? Благодарю.

ответ

6

Посмотрите на стадию потока-вывода в DX11:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb205121(v=vs.85).aspx

Это позволяет присоединить буфер памяти (на CPU или GPU), в которых результаты из вершинного шейдера (и, возможно, геометрии шейдер).

+0

Разве вы не знаете, как сделать то же самое в DirectX9? – Ezh

 Смежные вопросы

  • Нет связанных вопросов^_^