[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Графика / Direct x /

Использование файлов .Х формата

Все кому интересна данная тема подарок к празднику (к сожалению он уже прошел). Следующий урок посвящен основам использование (т.е. загрузке и отрисовке) трехмерных моделей из .x файлов. В файлах данного формата сохраняются трехмерные объекты, их материалы, нормали, описание текстур, анимация, и т.д. Создать их можно практически в любом современном редакторе трехмерных объектов. Итак, начнем...

Для начала создадим следующие переменные :


LPD3DXMESH p_d3dx_mesh = NULL;
int iSizeOfMeshVertex=0;

--- первая будет представлять сам трехмерный объект
--- вторая - объем память, необходимый для хранения информации об данном объекте, точнее объем памяти необходимый для хранения одной вершины.

Далее создадим функцию для загрузки объекта из файла следующего вида :

данная функция будет у нас загружать данные их файла. В ней использована функция D3DXLoadMeshFromX() предназначенная как раз для данной цели. Как параметры ей предаются :

--- имя файла для использования
--- указание, где нам хранить информацию об объекте
--- указатель на устройство Direct3D8
--- 0 - пока не важно
--- 0 - пока не важно
--- 0 - пока не важно
--- и собственно куда будем загружать наш объект

Затем мы вычисляем необходимый объем памяти для хранения нашего объекта (в соответствии с тем, какие флаги у нас имеются). Следующим шагом мы извлекаем указатели на буфер вершин и буфер индексов данного объекта, они нам понадобятся при отрисовке.

Функция для загрузки объектов у нас теперь имеется, следовательно его уже можно загружать из файла:


	LoadMesh ("bigtree.x");

Последний шаг (точнее предпоследний, последний - уничтожение объекта из памяти) это отрисовка. Мы уже имеем в нашей программе загруженный ранее объект, следовательно, теперь мы можем рисовать его. Что мы и проделаем :

здесь дана вся последовательность отрисовки. Первые две строчки вам уже знакомы; в третьей строке происходит установка источника данных, причем тут мы используем подсчитанный ранее объем памяти занимаемой одной веоршиной объекта; в четвертой строке - мы устанавливаем источник индексов; потом материал; и собственно сама отрисовка - используется функция DrawIndexedPrimitive(), она предназначена для отрисовки индексированных примитивов.

А вот теперь и последний шаг - уничтожение объекта и освобождение занимаемого им объема памяти :


	_RELEASE_ (p_VertexBuffer);
	_RELEASE_ (p_IndexBuffer);
	_RELEASE_ (p_d3d_Device);
	_RELEASE_ (p_d3d);

Вот теперь шаги кончились, и следовательно урок окончен. После того как вы проделаете все здесь написанное, вы должны получить картинку примерно следующего вида:

Теперь все.. Пока всем..




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Графика / Direct x /

DirectX
17-05-2010   

Это - библиотека диспетчера Microsoft DirectX, чтобы оптимизировать графы и звуковые представления для Windows... подробнее

Кол. просмотров: общее - 2699 сегодня - 1

Особенности программирования DirectX графики
07-02-2009   

Особенности программирования DirectX графики для видео карт nVidia (по материалам nVidia)... подробнее

Кол. просмотров: общее - 2994 сегодня - 0

DirectX 8.0 FAQ
26-01-2009   
Кол. просмотров: общее - 3032 сегодня - 2

Пишем DirectX-движок
25-01-2009   

Темой этого урока я решил сделать написание т. н. движка. Полагая, что всегда существует определённый контингент людей, только начавших изучать мультимедийные и игровые технологии, и плавающие в загадочных понятиях, объясню, что такое движок и на каком бензине он работает... подробнее

Кол. просмотров: общее - 3031 сегодня - 1

Что может наша видеокарта, что можем сделать мы и как это узнать?
15-01-2009   

По прошествии некоторого времени после празднования Нового Года и всего, что с ним связано, предлагаю вашему вниманию новый урок. Посвящен он будет извлечению информации о возможностях вашей видео карты... подробнее

Кол. просмотров: общее - 2875 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects