Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
1-1082743712
Черный прапорщик
2004-04-23 22:08
2004.04.11
Поведение формы


3-1079078589
Ломак
2004-03-12 11:03
2004.04.11
Процедура в Firebird


7-1076327133
ma
2004-02-09 14:45
2004.04.11
Как переделать мне зто для работы в window 2000


1-1079728986
Igoryok
2004-03-19 23:43
2004.04.11
Консольное - включить русский


3-1081458389
Igoryok
2004-04-09 01:06
2004.04.11
Как вызвать функцию из Access





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский