Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Примитивы в Mesh-объекте в DirectX [D7, WinXP]


Ludmila ©   (2006-11-07 19:23:00) 

Люди, кто работал с объектами Mesh, подскажите плиззз:
1) Какой тип примитивов может быть использован при их отрисовке? Только TriangleList? А как же точки и линии и т.п.?
2) В связи с этим - как можно поверх объекта Mesh нарисовать сеточку (но не стандартную из треугольников, а "гибкую" - из линий)? Придется пользоваться просто буферами и разными типами примитивов? Или есть какие-нибудь специальные объекты?


Sapersky   (2006-11-09 16:15:00) [1]

Хотелось бы использовать z-bias, но в документации написано, что он не подерживается примитивами типа линий. Это так?

Похоже что так.
Можно попробовать triangle list из вырожденных wireframe-треугольников, которые фактически представляют собой линии (2 вершины равны).
Если труба - это indexed triangle list и известно, в какой последовательности идут вершины - для линий можно создать дополнительный index buffer, а VB использовать тот же.


Ludmila   (2006-11-09 14:13:00) [2]

Спасобо, уже понятнее :). "Гибкая сеточка" - имеется ввиду, что она не треугольная, а четырехугольная (следовательно, wireframe не подходит). Составлена из поперечных сечений и образующих трубы. Т.е. получаем сетку, составленную из четырехугольников, стороны которых не лежат в одной плоскости в общем случае.
 Хотелось бы использовать z-bias, но в документации написано, что он не подерживается примитивами типа линий. Это так?


Sapersky   (2006-11-09 12:40:00) [3]

Вроде можно получить буферы меша и нарисовать их вручную (DrawPrimitive). Хоть точками, хоть wireframe-треугольниками. Специального объекта для этого нет.
Если рисовать wireframe-объект поверх solid-объекта, возможны проблемы с Z-буфером, т.н. Z-fight (рябить будет). Нужно либо слегка увеличить wireframe-объект, либо задать Z-bias.
Что такое "гибкая сеточка" - не вполне понятно.


Ludmila   (2006-11-08 18:14:00) [4]

1) А где это указывать? У меша один способ вызова отрисовки - DrawSubset(...) без всяких там параметров типа примитивов.
2) Вопрос связан. Если наложу текстуру в виде сетки, то закрашу этой текстурой промежутки между линиями сетки, а они у меня уже раскрашены нужным образом (там треугольники, у которых цвет интерполируется от вершины к вершине).


Pavia   (2006-11-07 19:53:00) [5]

1) Любой
2) Вопрос не связан. Текстуру наложить.


Наверх

Титульная страница Поиск, карта сайта Написать письмо