? Матрица проекций обекта изначально
English Russian
Live Здравствуйте, дорогие любители RENDER.RU. Вот спустя некоторое время решил написать собственный ...
Главная   Уроки   Библиотека   Документация   Знания

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

3D инженерия и 3D моделирование, человеческое тело в 3D 3D инженерия и 3D моделирование, человеческое тело в 3D

Новости

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятел...
3D моделирование и визуализация
  Создавая какую-то фигуру или элемент трехмерной графики, перед самим дизайнеро...
Создание нерегулярных сложных объектов
Основной проблемой при создании таких объектов является постоянное видение объе...
Home Вы здесь:: 3D инженерия Документация Матрица проекций обекта изначально
 

Модели

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятельности. Черчение, рисование, моделирование и даже проектирование – все это сфера ...
3D моделирование и визуализация
  Создавая какую-то фигуру или элемент трехмерной графики, перед самим дизайнером стоит не только цель сделать его правдоподобным, но и по максимуму сделать его яр...
Создание нерегулярных сложных объектов
Основной проблемой при создании таких объектов является постоянное видение объекта. Используются и начальные наброски объекта, и его модель. Второе, безусловно, л...
Общие принципы создание 3D-моделей
Все объекты 3D-моделирования делятся по своей форме на простые и сложные. Простым объектом может быть электрическая лампочка, сложным объектом можно считать дерево...
Рельефное структурирование
Рельефное структурирование появилось после нормалмаппинга и представляет собой метод наложения структур, базирующихся на информации о глубине. Изначально метод ...
Нормалмаппинг
Нормалмаппинг - это усовершенствованная техника бампаппинга, ее расширенная версия. При этом методе наложения рельефности нормали изменяются на основе информаци...

Вход для авторов



 
   
Матрица проекций обекта изначально
01.07.2012 04:42

О чем?

Теперь мы создадим класс объекта сцены и научимся его отображать, а так же крутить. Сделаем что-то такое, тут планета и вокруг нее, по орбите, крутятся корабли:

Объектное ориентирование.

Для дальнейшего изучения вы должны разобраться, что такое классы и указатели и как с ними работать! Так же я надеюсь вы знаете что такое вектора матрицы и операции над ними.

Для отображения множества объектов в сцене я решил создать класс объектов. В программе будет создан массив указателей на объекты созданные в памяти. Сам файл примера берите >тут

Переменные:

LPDIRECT3DDEVICE9              *pd3dDevice;   // Our rendering device

D3DXMATRIXA16                          GOMatrix;   // матрица проекций обекта, изначально клон мировой матрицы

D3DXMATRIX GOMatrixDef;

LPD3DXMESH                                       pMesh;   // собственно сетка объекта

D3DMATERIAL9*                  pMeshMaterials;   // материалы объекта

LPDIRECT3DTEXTURE9*     pMeshTextures;   // текстуры объекта

DWORD                                  dwNumMaterials;  // число материалов объекта

Функции:

InitGeometry(LPCSTR filename) не претерпела изменений, она только стала получать параметр – имя файла. У меня он сразу с путем. То как подставить путь к имени файла видно из примера с загрузкой текстуры.

GORender() вобрала в себя код  отображения объекта и его частей с нанесением текстур уже знакомый нам.

rotateYL(float timeFactor) просто поворачивает матрицу объекта, для привнесения некоторой динамики в сцену. Функцией D3DXMatrixRotationY( &GOMatrix, timeGetTime()/timeFactor ); мы устанавливаем угол на timeGetTime()/timeFactor, при этом значение timeGetTime() обеспечивает увеличение угла с течением времени.

Обратим внимание на конструктор:

CGObject_static(LPDIRECT3DDEVICE9 *Device,D3DXMATRIXA16* matrix)

//нам при создании объекта нужно передать в него мировую матрицу и 3d девайс

{              pd3dDevice = Device;                       // получаем 3д девайс

    GOMatrix = *matrix;                                  // получаем мировую матрицу проекции

                D3DXMatrixIdentity(&GOMatrix);  // обрабатываем созданную матрицу

};

Создаем объекты.

Так как это первый пример, я не буду создавать массива объектов. В graphic_dx.cpp вам должно быть все понятно, если вы следовали моим инструкциям. Обратим внимание на то, что теперь мы можем легко добавлять объекты:

 

//прописав новую переменную

CGObject_static object(d3dDevice,&matWorld);

//Инициализировав в объекте геометрию (в функции InitGeometry())

object.InitGeometry("models\\модель.x");

//отрисовав объект(в Render())

object.GORender();

//возможно включив ему вращение

object.rotateYL(8500.0f);

Не забывайте убирать из памяти объекты и переменные созданные в процессе работы программы через указатели, например через деструктор (в Cleanup()) иначе вы можете потом удивляться странным результатам работы программы или полюбоваться на экстренную перезагрузку компа :)

object.~CGObject_static();

Клавиатура и мышь.

В принципе можно было использовать directinput, однако, чтобы не заморачиваться, я использовал более простой подход взятый из примера с opensource.net

Кажется, тут все понятно и не вижу смысла подробно объяснять, учитывая, что впереди еще много чего я объясню, а если бы я стал останавливаться здесь, то укоротилась бы другая тема, а она вам надо?)

Иллюзия освещения.

В моем примере (пример 5) создается ощущение, что на планете тень, однако это не так, просто я установил у источника света дальность освещения, а ambient-свет сделал темно синем и слабым. Вообщем эффектно, но просто)

Итог.

Сцена, конечно, получилась не великая, но когда я сам ее сделал, то я был в шоке! Ведь то, что я делал раннее было не так прикольно, а ведь все писалось мной самим, а не чьими-то библиотеками, когда делаешь что то своими руками это всегда приятно). Еще интересен тот момент, что объекты можно позиционировать в 3dsMax и использовать его как редактор карт, как и делают многие, что будет описано далее, в соответствующей части.

 
   
 
Ulti Clocks content

Новые поступления

Циклевка полов
Одним из самых лучших видов напольного покрытия можно назвать паркет. Состоящий из экологически чистой древесины, у него есть и масса других достоинств: практичн...
Значение 3D моделирования в нашей жизни
В наш век высоких технологий наука не стоит на месте. Большой популярностью сейчас пользуется 3D моделирование различных объектов. ...
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of
Привет всем посетителям рендера! Я уже рассказывал о себе в прошлом making of. С того времени коренных изменений в моей жизни не было, кроме 3D-Award на CGSociety за эту работу :-)....

Методы

3D моделирование в деятельности человека
Компьютеры, планшетные и настольные, равно как и компьютерные технологии прочно обосновались в нашей повседневной жизни. Очень часто их присутствия не замечают, однако компьютерные технологии широко применяются во в...
3D моделирование как способ визуализации в среде проектирования
В наше время компьютерная графика используется в качестве одной из методик проектирования в самых разных отраслях промышленности и предоставления услуг. В этом плане данный метод является очень удобным для визуализа...
История развития 3D моделирования и компьютерной графики
Компьютерная графика бывает двух типов — интерактивная и неинтерактивная графика. В последнем случае мы просто видим графический объект, например по телевизору или в компьютере, но не можем его изменить и манипулиров...
Введение в компьютерную графику и 3D моделирование
Сегодня существует очень мало аспектов нашей жизни, которые не зависели бы от компьютеров. Практически каждый день мы имеем дело с компьютерами — дома, на работе, когда снимаем деньги в банкомате, во время поездки в мет...
3D моделирование и программы для создания компьютерной графики
Для того чтобы создавать компьютерную графику, используется много разных программ. CAD: позволяет архитекторам и инженерам составлять проекты конструкций. Это акроним для автоматизированного проектирования. CAD предст...
 

Стоит попробовать

3D моделирование - воплощение любой фантазии
В настоящее время компьютерная графика проникла во все сферы человеческой деятельности. Черчение, рисование, моделирование и даже проектирование – все это сфера применения компьютерной графики. Голливудские фильмы ...

Документация

3DS Max: краткий обзор
У большинства современных дизайнеров слово «3D» ассоциируется с известной программой 3D Max, которая предназначена преимущественно для создания графических сцен и разработку качественной анимации. Не является удивите...
Top
Яндекс.Метрика
Travel Turne Tranzito
заказ контекстной рекламы