Вниз
Скачать: CL | DM;

Direct3D   Найти похожие ветки 

 
pavia   (2003-12-04 18:44) [0]

Недавно начал изучать.Есть вопрос ,как создать объекты где вектора используются несколько раз.Тоесть если я создаю куб то мне нужно только 8 векторов ,но приходиться на кождом face задавать по 4 векторо и того получаем 4*6=24.Вопрос в следующим как задать грани куба используя только 8 векторов.Необезательно куб ,любой другого объекта.

PS Не подскажете хороший учебник(статью) в электронном виде.


 
Sapersky ©   (2003-12-05 11:03) [1]

Использовать индексированные примитивы. Т.е. имеется буфер вершин (векторов), вершины в произвольном порядке; и к нему буфер индексов, в котором описываются треугольники по номерам вершин - например, для квадрата из двух треугольников (спрайта или ещё чего):

вершины: (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 посмотреть.


 
pavia   (2003-12-05 19:55) [2]

To Sapersky
Спасибо.


 
pavia   (2003-12-06 17:55) [3]

Как в DelphiX ,в примерах убрать прозрачность?


 
pavia   (2003-12-07 14:48) [4]

Как убрать полупрозрачность у сетки(mesh)?


 
Sapersky ©   (2003-12-08 11:45) [5]

А, так это про DelphiX (т.е. Direct3D RM) было... Предупреждать надо.
Тогда DrawIndexedPrimitive отменяется. Наверное, что-то есть и в RM, AddFaces, AddTriangles можно посмотреть... но самое простое - создать текстовый X-файл (для куба можно вручную, в блокноте) и загрузить его. Посмотри примеры, которые имеются в комплекте. Пишется в общем так, как я описал - т.е. список вершин и список граней (задаваемых номерами вершин).
Относительно прозрачности - присвоить meshbuilder"у непрозрачный цвет или материал (не помню что конкретно в RM задаётся). Цвет - это вроде запись ARGB - поставить A=1.


 
pavia   (2003-12-08 18:54) [6]

С AddFaces, AddTriangles. Я уже разобрался.А вот прозрачность до конца убить не удается.

А кто нибудь может привесть пример иницилизации DirectDraw c Direct3D для заголовочных фаилов DirectX8(Не DelpiX).


 
Sapersky ©   (2003-12-09 12:10) [7]

В DX8 DirectDraw как такового нет (в заголовках DirectDraw.pas идёт от 7-го). Можно инициализировать либо Direct3D8, либо DirectDraw и Direct3D7. Примеры того и другого вроде везде валяются, хоть на DelphiGFX (вверху ссылка), хоть ещё где. По DirectDraw можно посмотреть прямо в DelphiX :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.04 c
7-1079783662
ASMiD
2004-03-20 14:54
2004.04.11
Частота компа


8-1070942191
Zac
2003-12-09 06:56
2004.04.11
Проблема с MediaPlayer!!!


14-1082436885
SSiriuss
2004-04-20 08:54
2004.04.11
Мини прога


1-1079946054
senya
2004-03-22 12:00
2004.04.11
Как программно создать элементы управления в Excel


1-1082544236
IraiZor
2004-04-21 14:43
2004.04.11
Screenshot возникла проьлема при alphablend




   Наверх