Коллеги, а кто сейчас пишет что-нибудь на С++ под OpenGL ?
Metallist64
> Коллеги, а кто сейчас пишет что-нибудь на С++ под OpenGL ?
Я балуюсь, если таки решусь движок делать, то это всё и задействую... Моя мала граматна - другого не разумеет ((
stratego
> Я балуюсь
А ссылочку на Git не дадите?
Я балуюсь, если таки решусь движок делать, то это всё и задействую...
stratego когда начал писать своё ? Давно или пару лет назад ?
Всё еще не начал, так отдельные опыты ставлю, под настроение. Я всё надеюсь, что кто-то за меня сделает, то что я хочу ))
Metallist64
> А ссылочку на Git не дадите?
С моим инетом, я не привык пользоваться всем этим "новомодним"... Да там ничего нет, доделанного... Ну попробовал инстансинг, ну прикрутил там буфер под статические данные, координаты в вершином рассчитал. Мелочёвка. Всё это есть тут на форуме, в обсуждениях Суслика и других, есть статья про измерение скорости операций, там вообще по сути всё есть... Я же под изометрию хочу подогнать всё. Пока в теории, на старом железе (15+ лет) получается 200-400к спрайтов вывести... Но в реальности, там будет меньше и намного... Но больше чем я пробовал в SDL по умолчанию 8,5к, или чуть меньше 30к в Двигло2д...
stratego
> Пока в теории, на старом железе (15+ лет) получается 200-400к спрайтов вывести...
шейдерами?
На устаревшем OpenGL на компьютере не получается больше 60к нормально вывести, нафинаются фризы. А уж про старое железо, можно умалчивать (20-30к вроде было).
У меня выводилось,Radeon HD 5750, 1 гигабайт, передавал только координаты и id спрайта. Физически картинок (уникальных картинок) было меньше, что-то около 50к. А квадратиков, куда картинка выводилась ,в зависимости от от размера, до 400к получалось. Но это тест, он не о чём, только показывает предел. А так же в игре, логика съест кучу времени, возможно сортировка понадобится. В теории то всё само расставиться при правильном подходе, а на практике, овраги же могут быть... opengl 3.3 , координаты текстурные брал из буфера, буфер постоянный, мне должно хватит, в теории ))
Один вызов рисования... Нет переключения текстур и шейдеров
Ну, и нет матриц, работаем сразу в нужном пространстве и диапазоне... Я понимаю, что это многим не подходит, по сути это только для изометрии и может потребоваться.... Иначе, масштабирование, вращение...
Metallist64
> Коллеги, а кто сейчас пишет что-нибудь на С++ под OpenGL ?
это не совсем я пишу, скорее я провожу эксперимент - пишет Алиса https://sourcecraft.dev/am98pln/unity-like-ge?rev=master
leonardo98
> это не совсем я пишу, скорее я провожу эксперимент - пишет Алиса
Все равно очень круто!
stratego
> Ну, и нет матриц, работаем сразу в нужном пространстве и диапазоне... Я понимаю, что это многим не подходит, по сути это только для изометрии и может потребоваться.... Иначе, масштабирование, вращение...
Мдя, а как проблему разных разрешений мониторов решить без маштабирования? Или для пиксельного гавна на мобильник и так сойдёт. И в изометрии вращение есть.
RikiTikiTak
> И в изометрии вращение есть.
Только оно реализуется не вращением спрайта, а его заменой ;)
RikiTikiTak
> Мдя, а как проблему разных разрешений мониторов решить без маштабирования?
Ну так, чтобы качество не убивать, плохой вариант, масштабировать итоговую картинку. Лучший вариант, нарисовать (сделать рендер из 3д), под разные размеры...
stratego
Ответ удовлетворительный. Разрешений очень много, будет очень много картинок. Но тут я не знаю как правильно.
Что бы заменить спрайт нужно сделать какие то вычисления.
RikiTikiTak
> Разрешений очень много, будет очень много картинок.
Можно просто раздвинуть/сдвинуть пределы того что видно. А вариант увеличения/уменьшения графики, сделать настраиваемым. Кому то надо помельче, кому то покрупнее - зрение у всех разное...