2016-08-25 3 views
0

У меня есть основной вопрос о directx (im using d3d9), после просмотра некоторых уроков. Я хочу создать базовую 3d-программу, и я, похоже, не получаю 1 вещь.Переходя к буферам вершин/индексов directx

Нужно ли копировать вершины/индексы каждый раз, когда я хочу нарисовать модель в 1 буфер вершин? Или я могу загрузить несколько моделей в 1 буфер вершин/индексов? Или мне нужно сделать несколько буферов вершин/индексов, каждый для каждой модели?

ответ

0

Вы можете сделать, как вы хотите, если вы посмотрите на IDirect3DDevice9::DrawIndexedPrimitive, вы найдете BaseVertexIndex и StartIndex, это позволяет компенсировать в вершину и индекса буфера, так что да, вы можете упаковать несколько геометрий в том же буфере , это полезно для уменьшения количества вызовов до SetIndices и SetStreamSource. Если ваш шаг вершин изменится, вам все равно придется называть более поздние с байтом смещения и новым шагом.

Если вы не используете динамическую геометрию, вы обычно копируете данные один раз в свои буферы и повторно используете их в кадре.

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