Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для отрисовки данных вершин из буфера вершин требуется несколько шагов. Сначала необходимо задать источник потока, вызвав метод IDirect3DDevice9::SetStreamSource, как показано в следующем примере.
d3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
Первый параметр IDirect3DDevice9::SetStreamSource сообщает Direct3D источник потока данных устройства. Второй параметр — это буфер вершин для привязки к потоку данных. Третий параметр — это смещение от начала потока до начала данных вершины, выраженное в байтах. Четвертый параметр — это шаг компонента в байтах. В приведенном выше примере кода размер CUSTOMVERTEX определяет шаг компонента.
Следующим шагом является информирование Direct3D о том, какой шейдер вершин используется путем вызова метода IDirect3DDevice9::SetVertexShader. Следующий пример кода задает код FVF для шейдера вершин. Это сообщает Direct3D о типах вершин, с которыми он занимается.
d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
После задания источника потока и шейдера вершин любые методы рисования будут использовать буфер вершин. В приведённом ниже примере кода показано, как выполнять отрисовку вершин из буфера вершин с помощью метода IDirect3DDevice9::DrawPrimitive.
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );
Второй параметр, который IDirect3DDevice9::DrawPrimitive принимает, это индекс первого вектора в буфере вершин.
Связанные разделы