Сетка Direct3D с комбинацией линий и треугольников

Мне нужно создать сетку Direct3D, состоящую из нескольких вершин (сгенерированных во время выполнения), которые мне нужно визуализировать как комбинацию LineList и TriangleList. т. е. некоторые вершины отображаются как LineList, а некоторые — как TriangleList.

Как я могу создать эту сетку Direct3D?


person Agnel Kurian    schedule 15.01.2010    source источник


Ответы (1)


Хорошо создайте буфер вершин и поместите в него все вершины.

Затем создайте индексный буфер. Поместите туда индексы списка строк. Затем добавьте индексы списка треугольников в буфер индексов.

Наконец.. рендерим что-то вроде следующего:

pDevice->DrawIndexedPrimitive( D3DPT_LINELIST, 0, 0, numLineIndices, 0, numLineIndices / 2 );
pDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0, numTriangleIndices, 0, numTriangleIndices / 3 );
person Goz    schedule 15.01.2010
comment
Есть ли способ объединить все вышеперечисленное в один объект сетки? - person Agnel Kurian; 15.01.2010
comment
Если вы имеете в виду D3DXMesh .. нет .. D3DXMesh обрабатывает только списки треугольников. Если вы говорите о какой-то сетке, то конечно. Это зависит от того, как вы определяете структуру сетки. - person Goz; 15.01.2010