![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Примитивы в 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) Вопрос не связан. Текстуру наложить.