![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Direct3D [D5]
pavia © (2003-12-04 18:44:00)Недавно начал изучать.Есть вопрос ,как создать объекты где вектора используются несколько раз.Тоесть если я создаю куб то мне нужно только 8 векторов ,но приходиться на кождом face задавать по 4 векторо и того получаем 4*6=24.Вопрос в следующим как задать грани куба используя только 8 векторов.Необезательно куб ,любой другого объекта.
PS Не подскажете хороший учебник(статью) в электронном виде.
Sapersky (2003-12-09 12:10:00) [1]В DX8 DirectDraw как такового нет (в заголовках DirectDraw.pas идёт от 7-го). Можно инициализировать либо Direct3D8, либо DirectDraw и Direct3D7. Примеры того и другого вроде везде валяются, хоть на DelphiGFX (вверху ссылка), хоть ещё где. По DirectDraw можно посмотреть прямо в DelphiX :)
pavia (2003-12-08 18:54:00) [2]С AddFaces, AddTriangles. Я уже разобрался.А вот прозрачность до конца убить не удается.
А кто нибудь может привесть пример иницилизации DirectDraw c Direct3D для заголовочных фаилов DirectX8( Не DelpiX).
Sapersky (2003-12-08 11:45:00) [3]А, так это про DelphiX (т.е. Direct3D RM) было... Предупреждать надо.
Тогда DrawIndexedPrimitive отменяется. Наверное, что-то есть и в RM, AddFaces, AddTriangles можно посмотреть... но самое простое - создать текстовый X-файл (для куба можно вручную, в блокноте) и загрузить его. Посмотри примеры, которые имеются в комплекте. Пишется в общем так, как я описал - т.е. список вершин и список граней (задаваемых номерами вершин).
Относительно прозрачности - присвоить meshbuilder'у непрозрачный цвет или материал (не помню что конкретно в RM задаётся). Цвет - это вроде запись ARGB - поставить A=1.
pavia (2003-12-07 14:48:00) [4]Как убрать полупрозрачность у сетки(mesh)?
pavia (2003-12-06 17:55:00) [5]Как в DelphiX ,в примерах убрать прозрачность?
pavia (2003-12-05 19:55:00) [6]To Sapersky
Спасибо.
Sapersky (2003-12-05 11:03:00) [7]Использовать индексированные примитивы. Т.е. имеется буфер вершин (векторов), вершины в произвольном порядке; и к нему буфер индексов, в котором описываются треугольники по номерам вершин - например, для квадрата из двух треугольников (спрайта или ещё чего):
вершины: (0,0,0); (1,0,0); (1,1,0); (0,1,0);
индексы: (0,1,2); (0,2,3);
Пример не совсем удачный (но простой), в данном случае экономии никакой нет. На кубе, если считать размер вершины 32 байта и выводить одним вызовом:
просто список треугольников - 6*6*32 = 1152
индексами - 8*32+6*6*2 = 328 (индекс - это Word, 2 байта)
Модели в играх только индексами и задаются - иначе никакого GeForce'а не хватит.
Рисуются они DrawIndexedPrimitive.
Подробнее некогда объяснять - поищи по "DrawIndexedPrimitive", "index buffer"... можно на GameDev.ru посмотреть.