Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 4
Всего онлайн: 4
Зарегистрировано юзеров: 5970
Комментариев на сайте: 630
Новый юзер: GeorgeKax



Последние комментарии
c
Theihpled прокомментировал "Урок 62 - Методы, наследование классов, операции с классами Delphi, (часть 4/6)":
Здравствуйте, Савельев Александр. У меня к вм небольшой вопрос по языку https://cloud.mail.ru/public/KFS1/dYUrFbaTU . Cпасибо за уроки.
Theihpled прокомментировал "Урок 54 - Потоки в Delphi, (часть 2/3)":
Кстати да. С потоками тоже ничего не вышло.



Мы в соцсетях
c
Delphi
Урок 9 - Экспорт .3DS модели из 3DS max 2009 в OpenGL

  Основой для этого урока будет пример предыдущего урока.
Первое, что нам предстоит сделать, это обновить Header OpenGL, подключаем в uses новый заголовочный файл DglOpenGL.
Архив с исходными файлами и проектом в конце урока!

Особенности этого Header’а:

  • Очень сильно упрощается инициализация OpenGL;
  • Возможность выбора версии контекста OpenGL;
  • Не нужно инициализировать кучу необходимых расширений;
  • Поддержка версии OpenGL 4.2(самая последняя на 2012 год).


Вот новая инициализация: В FormCreate:
InitOpenGL;//инициализируем все необходимые параметры и расширения
DC := GetDC(Form1.Handle); //получаем адрес формы
RC := CreateRenderingContextVersion(DC, [opDoubleBuffered], 2, 0, false, 32, 24, 8, 0, 0, 0); 
//создаём контекст с параметрами:
//Адрес формы в памяти,
// двойная буферизация, 
//Major версия OpenGL,
// Minor версия OpenGL, 
//проверка совместимости,
//глубина цвета, 
//разрядность буфера глубины,
//разрядность буфера трафарета, 
//разрядность буфера аккумуляции, 
//остальное не важно.

ActivateRenderingContext(DC, RC); //Активируем созданный контекст

Вместо переменной HRC: HGLRC будут 2 новые переменные: DC, RC: HDC. Таким образом мы создали контекст воспроизведения версии 2.0. Его поддерживают абсолютно все современные видеоадаптеры.

Загружать модели мы будем при помощи библиотеки Unit3DS, ее также необходимо подключить uses.

Все очень просто: В var добавляем переменную:
Var 
Model: T3DSModel;

В FormCreate нужно создать и загрузить модель:
...
Model:= T3DSModel.Create;
Model.LoadFromFile(Путь до модели, путь до папки с текстурами);
...

Наша модель будет лежать в папке Models, а текстуры в папке Textures, загрузка модели будет выглядеть так:
Model:=T3DSModel.Create;
Model.LoadFromFile(GetCurrentDir+'\Models\Scene.3DS', GetCurrentDir+'\Textures');

Все, модель мы загрузили! Теперь необходимо её нарисовать. Это осуществляется с помощью функции Draw(Pos, Angle).
Где Pos – это вектор позиции (X,Y,Z), Angle – это тоже вектор но вместо X,Y,Z будет Pith(угол поворота вокруг оси X), Yaw(угол поворота вокруг оси Y), Roll(угол поворота вокруг оси Z). Вектор - это тип TVector имеющий 3 параметра X, Y ,Z : Single и есть функция динамического создания Vector(X, Y, Z : Single): TVector;

Начинам рисовать:
Model.draw(Vector(0,0,0),Vector(0,0,0));

То есть в место того где мы рисовали пол с кубиком надо написать вот эту строку. Результат:



А вот вид модели в 3DS Max’е:



Примечание: отрисовка происходит не привычным способом (glBegin(); glEnd();), вывод происходит не по полигону, а по одному объекту за раз. Это повышает производительность на 100-150 FPS. При экспорте обязательно надо применить материал на все объекты. Если при компиляции возникает ошибка с отрисовкой или загрузкой модели, спасает модификатор в 3DS Max - UVW Map. Если не помогло, то лучше начать создавать модель заново исключая пустых объектов (без точек, материалов и т. д.).

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

Зарегистрируйтесь или авторизуйтесь, чтобы скачать.


Источник: www.thedelphi.ru
Автор: Клящицкий Виталий
Опубликовано: 26 Ноября 2012
Просмотров: 20487

Урок 8 - Игровая камера

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: oktavius [Новичок] Дата: 2012-11-29
Красава!!!!!




аватар Добавил: oktavius [Новичок] Дата: 2012-11-29
Жду Продолжения!) Отличным примером была бы простейшая 3D игра. Например: Освещение внутри Куба красное. Игрок внутри Куба, подходит к кнопке и нажимает ее. после нажатия кнопки освещение становится нормальным, при повторном нажатии снова красным)




аватар Добавил: Klesh [Программист] Дата: 2012-11-29
Рад стараться, в следующем уроке примером будет твоя идея.




аватар Добавил: oktavius [Новичок] Дата: 2012-11-30
Отлично буду ждать




аватар Добавил: oktavius [Новичок] Дата: 2012-11-30
Кстати очень хороший дизайн сайта Очень прост, и интуитивно понятен




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2012-11-30
Спасибо




аватар Добавил(а): qwerty [Новичок] Дата: 2012-12-04
Уроки клевые! Правда не всегда все понятно, но спасают примеры. Не бросай это все! Хорошее дело делаешь!




аватар Добавил: Klesh [Программист] Дата: 2012-12-05
Стараюсь, а по поводу вопросов спрашивайте и я буду исправлятся




аватар Добавил(а): Serhio [Новичок] Дата: 2012-12-09
Открываю exe-шник, в ответ ошибка "could not get function pointer adress for wglCreateContextAttribsARB-OpenGL 3.x and above not supported". Объясните кто-то, что оно от меня хочет) Поддержу предыдущие каменты - шикарный сайт, отличные уроки. Большое спасибо всем, кто имеет отношение к этому проекту)




аватар Добавил: Klesh [Программист] Дата: 2012-12-09
Похоже что твой видеоадаптер не поддерживает функцию создания контекста с пользовательскими атрибутами (wglCreateContextAttribsARB). Попробуй заменить в исходнике вот эту строку:
RC := CreateRenderingContextVersion(DC, [opDoubleBuffered], 2, 0, false, 32, 24, 8, 0, 0, 0);
На эту:
RC:= CreateRenderingContext (DC,[opDoubleBuffered],32,24,24,24,0,0);
Тут мы инициализируем самую последнею версию OpenGL, которую поддерживает видеокарта.




аватар Добавил(а): Serhio [Новичок] Дата: 2012-12-19
Klesh, пробовал сам все поправить, но видно без твоей помощи не обойтись. Заменил строку, но ошибки на этом не закончились. Компилятор находит ошибки в "pngzlib" (начиная с этой строчки{$L deflate.obj} (№144)), пробовал закаментить эти строчки, выбивает ошибку в "Textures". Скачивал игру кубик рубика на делфи с исходником - те же проблемы. Что характерно - модель в формате .ase отображается без проблем (чужая модель естественно ). При попытке загрузить свою .ase делфи поругался и выдал черный экран.




аватар Добавил: Klesh [Программист] Дата: 2012-12-20
Прими мои глубочайшие извинения , я забыл написать о новых файлах, которые требует у тебя Delphi. Просто в этом примере введена поддержка текстур формата PNG. Ссылка на них будет опубликована немного позже. Файлы надо просто закинуть в папу с проектом.




аватар Добавил: Klesh [Программист] Дата: 2012-12-21
Вот: PNGImage.rar




аватар Добавил(а): Serhio [Новичок] Дата: 2012-12-22
Klesh, спасибо большое, что помогаешь) осталась (надеюсь) последняя ошибка в textures. Как я понимаю, тоже нужно заменить файл?




аватар Добавил: Klesh [Программист] Дата: 2012-12-22
Да, надо распаковать весь архив в папку с примером.




аватар Добавил: oktavius [Новичок] Дата: 2012-12-24
Когда же следующий урок




аватар Добавил: Klesh [Программист] Дата: 2012-12-25
Скоро, просто это очень сложная тема и я не до конца разобрался в ней. Урок будет размером примерно в 9 страниц.




аватар Добавил: Programer [Новичок] Дата: 2013-02-28




аватар Добавил(а): thedelphi [Новичок] Дата: 2013-03-11
понятнее уроков я еще не видел, оч хорошо




аватар Добавил(а): СyberExpert [Новичок] Дата: 2013-03-26
Привет Klesh я бы хотел узнать какие языки программирования ты изучил и какие ты ещё изучаешь.




аватар Добавил: Klesh [Программист] Дата: 2013-03-29
Привет СyberExpert, на данный момент я знаю: Delphi и Pascal. Пытаюсь изучить С++ (знаю пока на уровне новичка приходится все время писать шейдеры для OpenGL, а они на C#).




аватар Добавил(а): Calabi-Yau [Новичок] Дата: 2013-04-30
В архиве нет DglOpenGL. Прога из архива запускается только экзешником




аватар Добавил: Klesh [Программист] Дата: 2013-05-01
Забыл положить , все исправил




аватар Добавил: Programer [Новичок] Дата: 2013-05-04
Ужасно интересные все уроки большое спасибо ребята за этот великолепный сайт




аватар Добавил: Klesh [Программист] Дата: 2013-05-05
Спасибо, очень приятно, рады стараться для вас




аватар Добавил(а): gasmator [Новичок] Дата: 2013-05-11
dglOpengl нету(




аватар Добавил: Programer [Новичок] Дата: 2013-05-19
А можно ли на языке Delphi написать свой движок?




аватар Добавил: Klesh [Программист] Дата: 2013-05-19
Конечно можно, главное прямые руки и большой мозг




аватар Добавил(а): gamer25 [Новичок] Дата: 2013-06-07
Когда планируются новые уроки?




аватар Добавил(а): gasmator [Новичок] Дата: 2013-06-16
ага уже хочется про шейдеры)




аватар Добавил(а): gasmator [Новичок] Дата: 2013-06-16
а где дгл опен гл модуль




аватар Добавил(а): Alexsus17 [Новичок] Дата: 2013-06-19
Ну где же урок про шейдеры?




аватар Добавил: Klesh [Программист] Дата: 2013-06-19
Ок, до 30 числа постараюсь написать.




аватар Добавил(а): Alexsus17 [Новичок] Дата: 2013-08-28
ну хотя бы до сентября уже бы что-нить увидеть




аватар Добавил(а): Joker1999obp [Новичок] Дата: 2013-10-19
какого числа будет новый урок? и как часто добавляются новые уроки?




аватар Добавил: sheen12 [Новичок] Дата: 2013-11-04




аватар Добавил(а): dreammage [Новичок] Дата: 2013-11-14
черт побери, не получается экспортировать из 3д макса =((




аватар Добавил: dmch_d [Новичок] Дата: 2014-05-23
Через .3ds можно как-то передавать анимацию?




аватар Добавил: Programer [Новичок] Дата: 2014-09-15
Сайт случаем ещё не заброшен ?




аватар Добавил(а): 5kaiN [Новичок] Дата: 2014-10-14
Programer, будем надеется что это не так..




аватар Добавил(а): NightFoxProg [Новичок] Дата: 2014-11-16
а как заменить вашу модель, допустим на другую ? такое возможно ?




аватар Добавил: dmch_d [Новичок] Дата: 2015-10-28
Уважаемый Klesh, у меня возникли трудности с использованием texture.pas из предыдущих уроков. Возможно-ли как-то использовать этот модуль загрузки для загрузки (извиняюсь за тавтологию) текстур с последующим наложением оных на полигон?




аватар Добавил(а): Dj-Slon [Новичок] Дата: 2017-04-04
Вот другая модель: Собор Василия Блаженного https://yadi.sk/d/PqtJQvZMshod3?force_show=1 я начал с неё - ща нашел кучу спорткаров




аватар Добавил(а): s1t1n [Новичок] Дата: 2017-10-15
Отлично.