|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.08.2016, 11:27 | #1 |
Регистрация: 07.12.2010
Сообщений: 8
|
Не отображается модель (Delphi + OpenGL)
Всем доброго времени суток!
Решил написать небольшой модуль для загрузки и отрисовки моделей в формате obj. Код писал согласно документации к формату. Но при запуске приложения модель не видна. Что не так- не могу понять. Файл модуля и модель прикрепил к теме в архиве. Прошу помощи у знающих людей! |
04.08.2016, 10:07 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Без кода проекта и кода корректных вызовов Ваших самописных подпрограмм, очень сложно просто даже запустить, чтобы увидеть в чём проблема. Взял opengl_min проект из книги Краснова для пробы, вставил вызов LoadModel в начало программы и RenderModel в главный цикл, при запуске программы не вижу ничего, но и не знаю загрузилось ли чего вообще. В отладку не хочется лезть, лучше Вы скиньте тестовый проект в архиве, а не только модуль.
|
07.08.2016, 17:19 | #3 |
Регистрация: 07.12.2010
Сообщений: 8
|
Это мой первый опыт работы с трехмерной графикой. Так, что мой проект почти ничем не отличается от минимального приложения.
Намекните, хоть в какую сторону рыть то)) |
07.08.2016, 23:27 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
basjaka
Рыть в сторону нормального видео учебника/туторила. В функции SetDCPixelFormat мы должны сообщить о том что будем использовать OpenGl делается это следующим образом надо выставить флаг PFD_SUPPORT_OPENGL. Если не указать то ChoosePixelFormat вернёт неправильное значение и ничего далее работать не будет. PFD_DRAW_TO_WINDOW тоже надо указать иначе может включиться программный рендер, а не аппаратный. Код:
Выносим из цикла, в цикле рисуется сразу несколько треугольников подряд. Каждые 3 вызова glVertex создают новый треугольник. Модель должна быть изначально разбита на треугольники, а непросто на многоугольники. Код:
Код:
Затем я переписал эти параметры в код на Delphi. Код:
Код:
Код:
Тут надо бы рассказать про матрицы и работы с камерой. Но мне лень Есть разные способы и режимы работы с камерой. Можно выделить 3 абстракции. 1) Корабль стоит на месте а двигатель двигает вселенную. 2) Вселенная стоит на месте двигатель двигатель корабль. 3) Двигатель двигает камеру. В зависимости от выбранной абстракции используются разные операции, разные функции. Ну как разные? Названия одни, а то что они делают отличается, в зависимости от выбранной абстракции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 07.08.2016 в 23:29. |
03.11.2016, 15:06 | #5 |
Регистрация: 07.12.2010
Сообщений: 8
|
Спасибо огромное)
А посоветуйте "нормальную литературу"... Читал Краснова Михаила, но на его книги масса нареканий в сети. |
03.11.2016, 19:05 | #6 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Советую изучить этот цикл статей:
http://esate.ru/uroki/OpenGL/uroki-OpenGL-c-sharp/ Жалко, что не дельфи. Но рассмотрено много важных моментов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Opengl C++ модель солнечной системы | Shade2015 | Помощь студентам | 3 | 08.05.2015 21:09 |
Не удаётся сгладить модель/Не работает GL_SMOOTH (OpenGL) | saggy | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 03.05.2014 23:20 |
3D модель системного блока в OpenGL | Chester751 | Общие вопросы C/C++ | 0 | 17.04.2014 22:32 |
сделать программу на C++, которая переводит цветовую модель RGB в модель HSV | Kabahol | Помощь студентам | 5 | 14.03.2014 19:05 |
OpenGL - анимированная модель (.*gms) | Vova777 | Мультимедиа в Delphi | 0 | 05.08.2011 20:28 |