Russian Qt Forum
Ноябрь 23, 2024, 00:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Выбор OpenGl  (Прочитано 15041 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Август 06, 2014, 07:55 »

Нужен свой движок для моделирования: физика отсутствует(никаких столкновений, деформаций и обратной связи с пользователем, пользователь только наблюдает), нужно нарисовать 3D модели в пространстве по красивее: с учетом освещенности, с тенью, карты высоты/блеска/глянца.
Что выбрать, пишут что opengl 2.0 (glDrawELements, pushMatrix...) устарел и все надо реализовывать на шейдерах.
Брать подход QGlWidget или то что сделанно в Qt 5?
В программе будет интерфейс и для этого Qt очень удобен своими компоновщиками, но часть openGl хотелось бы реализовать максимально независимо от Qt.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Август 06, 2014, 08:08 »

Вот вам список на подумать :
http://www.openscenegraph.org/
http://www.ogre3d.org/
https://qt.gitorious.org/qt-labs/qt3d/
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Август 06, 2014, 08:54 »

Спасибо, но я уже просматривал все эти движки - не подходят: тормознуто, некрасиво, нет слоев. На glDrawElement и pushMatrix я сделал пример в который осталось вставить шейдеры для объемных и красивых поверхностей, просто пишут(http://www.esate.ru/blog/novye_uroki_opengl/382.html) что на шейдерах все это будет быстрее.

p.s. Какие технологии на данный момент актуальны, вопрос производительности не на последнем месте.
« Последнее редактирование: Август 06, 2014, 09:25 от deMax » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Август 06, 2014, 11:32 »

Вопрос совместимости никогда и нигде не был на последнем месте, а с OpenGL тем более. Поэтому я пере-собрал Qt5 с opengl desltop и спокойно использую старый код. Объявление многого "устаревшим" расцениваю как маркетинговую уловку.

Что касается GLSL шейдеров, то они и раньше были неизбежны - иначе phong просто не получить. Ну и начните с простого phong'a, а дальше видно будет. Это гораздо практичнее чем очертя голову бросаться в пучину GLSL - только потому что якобы "на шейдерах все быстрее" Улыбающийся
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #4 : Август 06, 2014, 15:08 »

Где посмотреть примеры или готовые решения, как наиболее просто и красиво отрисовать модель. Задача то по сути типичная.
И каким способом отрисовывать модель? glDrawElements?
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #5 : Август 07, 2014, 14:17 »

Я пока сделал рисование через glDrawElements, но glTexCoordPointer вынуждает дублировать вершины у которых текстурные координаты различаются для граней.  glNormalPointer тоже для некоторых вершин не совпадает. Как это на шейдерах сделать и какую документацию посоветуете?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Август 07, 2014, 16:24 »

Я пока сделал рисование через glDrawElements, но glTexCoordPointer вынуждает дублировать вершины у которых текстурные координаты различаются для граней.  glNormalPointer тоже для некоторых вершин не совпадает. Как это на шейдерах сделать и какую документацию посоветуете?
Лет 15 (на моей памяти) все дублировали (чаще использовали данные где это уже сделано) - и не помню чтобы кто-то рвался делать это на шейдерах Улыбающийся

Вот старенький пример который (в свое время) использовал я http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/lighting.php. Он делает то что Вы называете "красиво" (phong shading)
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #7 : Август 08, 2014, 13:14 »

А что с текстурированием делать? У меня есть 3d модель, экспортирую я ее в формат obj (или какой другой посоветуете, в 3ds отсутствуют нормали. К модели нужно крепить метаинформацию поэтому после obj будет бинарный файл). Массив полигонов в котором каждая точка содержит - номер точки, номер текстуры и номер нормали из 3-ех массивов.
Правильно ли дублировать точки для тех полигонов у которых отличаются нормали и текстурные координаты(рисовать glDrawElements) или есть более красивые и производительные решения? Сама модель будет достаточно простой.

т.е. мне нужно решение локальной задачи, отрисовать модель из 3D редактора с учетом текстур. Красивым и не тяжелым(для ПК) способом.
« Последнее редактирование: Август 08, 2014, 13:22 от deMax » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Август 08, 2014, 14:34 »

У меня есть 3d модель, экспортирую я ее в формат obj (или какой другой посоветуете, в 3ds отсутствуют нормали. К модели нужно крепить метаинформацию поэтому после obj будет бинарный файл).
Obj нормальный формат, из других есть смысл посмотреть FBX, там очень приличный SDK. Если попроще - можно напр milkshape. Своего формата тоже бояться не следует

Массив полигонов в котором каждая точка содержит - номер точки, номер текстуры и номер нормали из 3-ех массивов. Правильно ли дублировать точки для тех полигонов у которых отличаются нормали и текстурные координаты(рисовать glDrawElements) или есть более красивые и производительные решения? Сама модель будет достаточно простой.
Такое дублирование во всяком случае было нормальной практикой на протяжении десятилетий. Разумеется правильно дублировать не все вертексы а лишь отличающиеся нормалями/текстурой, таких обычно немного.

А что с текстурированием делать?
То же самое, glTexCoordPointer и.т.д
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #9 : Август 11, 2014, 09:54 »

Obj нормальный формат, из других есть смысл посмотреть FBX, там очень приличный SDK. Если попроще - можно напр milkshape. Своего формата тоже бояться не следует
А если нужно сохранить модель состоящую из множества елементов с иерархией и взаимным расположением? Например машина - колесо в своей системе координат(для вращения вокруг своей оси), плюс есть смещение относительно машины или амортизаторов. т.е. дополнительный формат для сцены.

Цитировать
Такое дублирование во всяком случае было нормальной практикой на протяжении десятилетий. Разумеется правильно дублировать не все вертексы а лишь отличающиеся нормалями/текстурой, таких обычно немного.
А есть готовые решения? Например может ли так сохранять blender или 3dmax...?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Август 11, 2014, 10:38 »

А если нужно сохранить модель состоящую из множества елементов с иерархией и взаимным расположением? Например машина - колесо в своей системе координат(для вращения вокруг своей оси), плюс есть смещение относительно машины или амортизаторов. т.е. дополнительный формат для сцены.
Если нужно больше возможностей - качайте FBX SDK, он себя оправдает.

А есть готовые решения?
Если программист не может перевести shared/unshared - грош ему цена, пусть идет учить регулярки и не сует хобот в 3D  Улыбающийся
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #11 : Август 11, 2014, 11:00 »

Если нужно больше возможностей - качайте FBX SDK, он себя оправдает.
Смущает меня FBX - проприетарный недокументированный формат
А какие есть форматы для сохранения сцены, которые самому можно прочитать? Скажем что то типа lws(lightwave scene), кроме иерархии объектов и смещений координат ничего не нужно.
Если программист не может перевести shared/unshared - грош ему цена, пусть идет учить регулярки и не сует хобот в 3D  Улыбающийся
Не хочется писать велосипед, хотя задача простая. А причем здесь регулярные выражения?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #12 : Август 11, 2014, 11:10 »

Смущает меня FBX - проприетарный недокументированный формат
А какие есть форматы для сохранения сцены, которые самому можно прочитать?
Придумайте свой формат и напишите экспортер из редактора. Большинство редакторов (если не все) позволяют это делать довольно легко.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Август 11, 2014, 11:12 »

Смущает меня FBX - проприетарный недокументированный формат
Пользуйте SDK, это гораздо приятнее чем ковыряться в формате

А какие есть форматы для сохранения сцены, которые самому можно прочитать? Скажем что то типа lws(lightwave scene), кроме иерархии объектов и смещений координат ничего не нужно.
Не связывайтесь с этой гадостью только потому что текстовый файл - там парсить грыжу наживете. И он постоянно меняется, а доки приличной нет - одни огрызки.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #14 : Август 11, 2014, 19:31 »

Смущает меня FBX - проприетарный недокументированный формат
А какие есть форматы для сохранения сцены, которые самому можно прочитать?

Есть COLLADA https://ru.wikipedia.org/wiki/COLLADA.
Записан

Гугль в помощь
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 22.