Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Прорисовка объекта с уникальными нормалями |
Автор: maxfox 6.4.2015, 00:57 | ||||
Доброго времени суток, товарищи! Я недавно начал изучение Директ-Х. В соответствии с туторами у меня все вроде бы получается. Вернее всё было понятно на плоскости из двух трианглов. Но вот я решил нарисовать куб с текстурой и освещением, наткнулся на дилемму. как было с плоскостью: два треугольника задаются массивом вершин 0, 1, 2, 3. И массивом индексов вершин: 0, 2, 1, 0, 3, 2. структура вершины:
на основе этих массивов создаются буферы IDirect3DVertexBuffer9 и IDirect3DIndexBuffer9 ; ну и сама отрисовка как по книжке:
Все нормально работает. Вопрос в том, как организовать все это для Куба? для куба массив вершин получается из 8 шт: 0, 1, 2, 3, 4, 5, 6, 7. Ну и массивом индексов вершин не буду перечислять - он длинной 12*3 Дилема в том, что тут нормали для каждой стороны куба, т.е. каждая пара треугольников - имеют свои уникальные нормали. т.е. количество нормалей будет равно 12*3 - по количеству треугольников (ну или 6*3 - по количеству сторон куба). Получается что структура вершины oPNT тут уже не годится. Либо годится, но нужно избыточное количество вершин, т.е количество вершин будет равно 12*3. Согласитесь ,ведь это приличный перерасход памяти! В результате я пока реализовал рендеринг объекта отдельно по каждому треугольнику. т.е. у меня в цикле по всем треугольникам каждый раз заполняется буфер IDirect3DVertexBuffer9 - для каждого треугольника - 'это массив их трёх вершин типа oPNT. - и я тут же его прорисовываю: DrawPrimitive(D3DPT_TRIANGLELIST,0,1); мой вопрос заключается в том, как же правильнее выводить объекты со сложной формрй сглаживания (ведь нормали создаю сглаживание объекта), и при сложном текстурировании (хочу чтобы каждая сторона куба занимала свой уникальный кусок текстуры)? Правильнее делать с добавлением избыточности вершин, или рендерить объекты по каждому треугольнику? |
Автор: maxfox 6.4.2015, 23:33 |
спс. мне подсказали, что избыточность вершин, это правильный путь. |