OberonCore
https://forum.oberoncore.ru/

3D-модель с текстурой (SDL+OpenGL)
https://forum.oberoncore.ru/viewtopic.php?f=47&t=5320
Страница 1 из 1

Автор:  Rafi [ Суббота, 10 Январь, 2015 05:42 ]
Заголовок сообщения:  3D-модель с текстурой (SDL+OpenGL)

Когда-то несколько лет назад сделал. Нашёл вот недавно в закромах, пыль стряхнул. Вдруг кому интересным покажется, как пример использования 3D. Выкладываю с ББ, а не отдельно подсистемой, так как наверняка воды утекло (биндинги к SDL поменялись). Как откроется, достаточно в разделе "Запуск" коммандер кликнуть. Можно ещё в имени модели сменить 1 на 2, чтобы другая текстура натянулась.

Вложения:
OglPract.7z [5.55 МБ]
Скачиваний: 187

Автор:  Иван Кузьмицкий [ Суббота, 10 Январь, 2015 11:29 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

А что, гном очень даже ничего! Формат MS3D поддерживает анимацию?

Вложения:
dwarf1.PNG
dwarf1.PNG [ 78.13 КБ | Просмотров: 6909 ]

Автор:  Rafi [ Суббота, 10 Январь, 2015 15:00 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Угум, там скелетная анимация. Думал тогда ещё с ней повозиться, но руки так и не дошли. Вообще, наверное, конвертер можно для любого формата модели написать. Меня в своё время по части ОГЛ другое озадачило: как использовать расширения, чтобы был доступен функционал вплоть до последних версий. Например, чтобы были доступны шейдеры.

Автор:  Иван Кузьмицкий [ Воскресенье, 01 Март, 2015 14:16 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Добавил загрузчик моделей к новому ББ

Вложения:
bblogo.PNG
bblogo.PNG [ 26.16 КБ | Просмотров: 6808 ]

Автор:  Пётр Кушнир [ Воскресенье, 01 Март, 2015 19:57 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Это какой-то особый фрейм будет?

Автор:  Иван Кузьмицкий [ Воскресенье, 01 Март, 2015 21:07 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Нет, рисовать OpenGL можно прямо в Restore.

Автор:  Иван Денисов [ Понедельник, 02 Март, 2015 08:52 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Инструкция по сборке среды тут: http://redmine.molpit.com/projects/blackbox-sdl/wiki

У меня собралась сборка, но вот в Wine раньше она лучше работала. Теперь она мигает непрерывно :(

А так впечатляет, конечно!

Автор:  Иван Кузьмицкий [ Понедельник, 02 Март, 2015 09:24 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Иван Денисов писал(а):
Инструкция по сборке среды тут: http://redmine.molpit.com/projects/blackbox-sdl/wiki
Что-то у меня проблемы с доступом к этой странице. Уже несколько дней не могу зайти на редмайн.

Иван Денисов писал(а):
У меня собралась сборка, но вот в Wine раньше она лучше работала. Теперь она мигает непрерывно :(
В главном окне слева внизу есть три параметра сцены: счётчик кадров в секунду / время рендера одного кадра / количество пропущенных кадров. Какие их значения в вайне?

Ещё может быть виноват режим однобуферного рендера. Пока что он единственно возможный.

Автор:  Иван Денисов [ Понедельник, 02 Март, 2015 09:28 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Иван Кузьмицкий писал(а):
Иван Денисов писал(а):
Инструкция по сборке среды тут: http://redmine.molpit.com/projects/blackbox-sdl/wiki
Что-то у меня проблемы с доступом к этой странице. Уже несколько дней не могу зайти на редмайн.

Я его только-что поднял. Как только ты такое замечаешь, то сразу мне пиши. Я пока не могу установить закономерность почему он падает. Подозреваю, что из-за памяти, но статистики пока мало.

Иван Кузьмицкий писал(а):
В главном окне слева внизу есть три параметра сцены: счётчик кадров в секунду / время рендера одного кадра / количество пропущенных кадров. Какие их значения в вайне?

30/0.0287/46

Иван Кузьмицкий писал(а):
Ещё может быть виноват режим однобуферного рендера. Пока что он единственно возможный.

А почему невозможно? Ведь у тебя есть Sdl2Video.GL_SwapWindow(w) это разве не оно?

Автор:  Иван Кузьмицкий [ Понедельник, 02 Март, 2015 09:57 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Иван Денисов писал(а):
Иван Кузьмицкий писал(а):
Ещё может быть виноват режим однобуферного рендера. Пока что он единственно возможный.

А почему невозможно? Ведь у тебя есть Sdl2Video.GL_SwapWindow(w) это разве не оно?
Потому что БлэкБокс перерисовывает только часть окна. Например, при вводе текста обновляется только прямоугольник, содержащий набираемую строчку. Поэтому двойная буферизация с полной очисткой буфера тут не подходит, ведь надо сохранять то, что нарисовано на предыдущем кадре. Тут возникает два варианта. Либо рисовать в двухбуферном режиме, причём сразу в два буфера - в передний и задний (OpenGL такое умеет); либо в однобуферном, полностью имитируя поведение эталона. Я пробовал оба, пока что выбрал второй вариант, как самый простой.

P.S. Зашёл на редмайн нормально.

Автор:  Иван Денисов [ Понедельник, 02 Март, 2015 10:02 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Еще вчера открыл для себя такую штуку как "Display lists". Это очень хорошая вещь! Пока вижу, что ты их не особо используешь, а видимо надо. Чтобы при перерисовке неизменных объектов не гонять информацию между графической картой и процессором.

Автор:  Иван Кузьмицкий [ Понедельник, 02 Март, 2015 10:28 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Дисплейные списки уже устарели, начиная с OpenGL 3.1. Вместо них лучше использовать Vertex Buffer Objects (VBO) и Vertex Array Objects (VAO).

Но у нас для отрисовки ББ сцена копеечная, там почти ничего нет, можно сказать (логотип ББ не в счёт, это отдельная сцена, такие сцены можно и нужно оптимизировать списками или VBO). Тормоза из-за медленной генерации надписей - чудовищное время отнимается, во-первых, самим SDL_TTF, а во-вторых, преобразованием сгенерированного растра в текстуру OpenGL "на лету". Я планирую сначала разобраться со второй частью. К SDL_TTF надо подходить серьёзно (я думаю, как бы не пришлось бы вообще от него избавиться, перейдя на прямую привязку к freetype).

Автор:  Иван Денисов [ Понедельник, 02 Март, 2015 13:19 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Спасибо, Иван, многое стало понятнее. Тогда рисовать на заднем плане крутящуюся сцену, возможно, не лучшая идея... Ведь тогда все окна и меню перерисовываться должны, откуда и возникает мелькание. Было бы удобно предусмотреть рисование OpenGL сцены в одном из окон ББ.

Автор:  Иван Кузьмицкий [ Понедельник, 02 Март, 2015 13:32 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Мелькание заборем специальным набегом.

Автор:  Илья Ермаков [ Понедельник, 02 Март, 2015 15:43 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Иван Денисов писал(а):
Я его только-что поднял. Как только ты такое замечаешь, то сразу мне пиши. Я пока не могу установить закономерность почему он падает. Подозреваю, что из-за памяти, но статистики пока мало.


А он на VDS поставлен?
Есть у Редмайна такая проблема, если несколько пользователей начинают работать - может памяти не хватать, падает,
приходится перезапускать "Рельсы".
Увеличение памяти помогало.

Автор:  Иван Денисов [ Понедельник, 02 Март, 2015 16:03 ]
Заголовок сообщения:  Re: 3D-модель с текстурой (SDL+OpenGL)

Илья Ермаков писал(а):
А он на VDS поставлен?
Есть у Редмайна такая проблема, если несколько пользователей начинают работать - может памяти не хватать, падает,
приходится перезапускать "Рельсы". Увеличение памяти помогало.

Все оказалось проще :) выяснил причину. 26.02.2015 в 17:03:48 хостер перезагружал сервер, а запуск Redmine у меня в автозагрузку не добавлен.
Проблемы с памятью таки победил ранее.

Rafi, извините за оффтоп, надо куда-то эти сообщения перенести...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/