Буферы вершин FVF (Direct3D 9)
Задание параметра FVF метода IDirect3DDevice9::CreateVertexBuffer ненулевого значения, которое должно быть допустимым кодом FVF, указывает на то, что содержимое буфера должно быть охарактеризовано кодом FVF. Буфер вершин, созданный с кодом FVF, называется буфером вершин FVF. Некоторые методы или использование IDirect3Device9 требуют буферов вершин FVF, а другие требуют буферов вершин, отличных от FVF. Буферы вершин FVF необходимы в качестве аргумента буфера вершин назначения для IDirect3Device9::P rocessVertices.
Буферы вершин FVF могут быть привязаны к исходному потоку данных для любого номера потока.
Наличие компонента D3DFVF_XYZRHW в буферах вершин FVF указывает, что вершины в этом буфере обработаны. Буферы вершин, используемые для IDirect3DDevice9::P rocessVertices буферы конечных вершин должны быть обработаны после обработки. Буферы вершин, используемые для входных данных шейдера фиксированной функции, могут быть предварительно обработаны или после обработки. Если буфер вершин после обработки, то шейдер эффективно обходится, а данные передаются непосредственно в модуль примитивного вырезки и установки.
Буферы вершин FVF можно использовать с шейдерами вершин. Кроме того, потоки вершин могут представлять те же форматы вершин, что и буферы вершин, отличные от FVF. Они не должны использоваться для ввода данных из отдельных буферов вершин. Дополнительная гибкость новых потоков вершин позволяет приложениям, которые должны хранить данные отдельно, чтобы работать лучше, но это не обязательно. Если приложение может заранее поддерживать чередуемые данные, то это повышение производительности. Если приложение будет пересекать данные только перед каждым вызовом отрисовки, оно должно включить API или оборудование для этого с несколькими потоками.
Наиболее важными вещами с производительностью вершин является использование 32-байтовой вершины и поддержание правильного порядка кэша.
Связанные разделы