LINUX.ORG.RU

[SDL][OpenGL] Что выбрать для 2d?

 ,


0

2

Хочу немножко поиграться с 2d графикой (в планах возможна небольшая 2d игрушка). Что лучше выбрать в плане быстродействия, и вообще насколько подходит openGL для 2d графики?
Еще давно я поглядывал на SDL. Библиотека была неплоха, но по-моему уж слишком низкоуровневая.
Сейчас ковыряю openGL. Вроде бы пока все понятно, но не слишком ли она перегруженная для работы c 2D?
Также меня радует что openGL более известна и точно уж завтра не загнется, и возможно когда нибудь пригодится.
Уважаемый ЛОР, так что же выбрать мне?

SDL для обработки ввода и прочих платформозависимых штук, а opengl для вывода графики.

PolarFox ★★★★★
()

Если чисто спрайты будут без поворотов, то всё что угодно, если нужны повороты или 3д-искажения, то opengl

xorik ★★★★★
()

По возможности, SDL, т.к. тогда можно будет собирать твой труд даже на портативных консолях, которые OGL просто не тянут.

Также меня радует что openGL более известна и точно уж завтра не загнется

SDL тоже не загнётся, инфа 100%.

runtime ★★★★
()

openGL Можно много красивостей налепить, используя шейдеры. Вдруг нужна будет простая 3д анимация, вроде вращающихся колёс. Освещение, или даже тени. Отрисовка множества прокси-объектов без тормозов.

Сам графическую составляющую для 2д движка делаю на опенЖЛ - одно удовольствие - возможностей немерено.

rip86oz
()

Для 2D - строго SDL, т.к. работает везде даже без 3d-ускорения.

Deleted
()

OpenGL, можно с маленькими затратами делать красивые эффекты на шейдерах, кроссплатформенно. Рисованием графики должна заниматься как раз видеокарта.

note173 ★★★★★
()

Плюс один к OpenGL и эффектам на шейдерах. Если кажется слишком низкоуровневым, то поищи 2d движок. Хотя под linux их наверное кот наплакал.

Amp ★★★
()

opengl, потом и 3д сделать можно. У меня так было... Начинал проект на фирме, первые наработки были на GDI(богомерзком), потом захотелось градиентов и сглаживания, попробовал по-быстрому GDI+, долго плевался, понял что совсем всё плохо и сделал рисование на opengl - доволен как слон. Кроме того взаимодействие с изображением тоже облегчается(покликать мышом на него и т.п. - GL_SELECT) просто и без всяких извращений.

anonymous
()

бери SDL вместе с OpenGL

альтернативы разве что GLUT, GLFW, но SDL почётче как по мне ибо к ней легко прикручивается тот же звук.

jeuta ★★★★
()

Лови пример на Си, как можно сделать, чтобы юзер сам выбирал через что (SDL или OpenGL) программа будет рисовать.

cPunk ★★
()
Ответ на: комментарий от PolarFox

Лорчую такую связку. В SDL без OpenGL гораздо сложнее делать преобразования спрайтов и системы координат.

buddhist ★★★★★
()

бери SDL БЕЗ OpenGL

потому что:

в планах возможна небольшая 2d игрушка


1. твоя «игрушка» на компьютерах где хорошо юзается OpenGL НИКОГО не заинтересует.

2. твоя «игрушка» МОЖЕТ БЫТЬ заинтересует хозяев всяких разных мобильных устройств, с WinMobile, Symbian, AmigoOS, Android, (напиши свою ос) на борту, там обычно OpenGL не работает.

anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2

Да, я согласен что SDL хорош. Но на нем очень трудно рисовать. Взять хотя бы отрисовку окружности с антиалиасингом. (алгоритм Ву). Различные эффекты также придется реализовывать непонятно как

sol_linux ★★
() автор топика
Ответ на: комментарий от anonymous2

SDL на таких девайсах довольно глючен, да и как показывает практика, библиотека вообще далека от идеала, плохо справляясь даже с функцией предоставления окна для opengl-ного приложения. В то же время OpenGL ES на Android и айфонах-айпадах наличествует и работает. Доказано опытом проекта hedgewars (OpenGL для рендеринга и сборник SDL+SDL_* для всего остального).

unC0Rr ★★★★★
()

SDL для создания окна, ввода (с поддержкой юникода). Рендеринг с помощью OpenGL. Для фонтов хорошо подходит Freetype2. Ну и libpng и libjpeg для загрузки текстур.

andreyu ★★★★★
()
Ответ на: комментарий от Eddy_Em

> glut

Не самый лучший вариант. Хотя бы из-за кривой реализации в зависимости от платформы. Есть freeglut с поддержкой расширений, но и он не фонтан.

andreyu ★★★★★
()
Ответ на: комментарий от Eddy_Em

> Ну, не знаю. УМВР.

Переключение в полный экран и обратно тоже работает? На всех платформах? А если используется тайловый WM?

А обработку колеса мыши в glut вы как делаете? Неужели расширения из freeglut используете?

А как осуществляется юникодный ввод? А на немецкой, японской, китайской клавиатуре?

А как вы опрашиваете джойстик?

А как получить скан-код клавиши?

А как различить левый/правый альт/шифт/контрол?

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Переключение в полный экран и обратно тоже работает?

У меня работает, про другие платформы и тайловые WM не скажу.

А обработку колеса мыши в glut вы как делаете?

У меня для этого gtk используется, но и в glut как-то делал, не помню, правда :)

А как осуществляется юникодный ввод?

КОИ8

По дальнейшим вопросам - без понятия. это нужно лишь для игрушек.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> > Переключение в полный экран и обратно тоже работает?

У меня работает, про другие платформы и тайловые WM не скажу.


Зато я могу сказать - работает не всегда и не везде.

А обработку колеса мыши в glut вы как делаете?

У меня для этого gtk используется, но и в glut как-то делал, не помню, правда :)


Ну вот, для такой простой и нужной вещи нужно тянуть gtk+ - очень «дельный» совет.

> А как осуществляется юникодный ввод?

КОИ8



Мда. Потом не русскоговорящим будете пояснять, почему они не могут ввести текст на родном языке.

По дальнейшим вопросам - без понятия. это нужно лишь для игрушек.


Верно, а ТС именно про игры и говорил.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous2

Да, там работает OpenGLES, который подмножество OpenGL.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

У меня для этого gtk используется, но и в glut как-то делал, не помню, правда :)

В glut это делается наложением патча, в оригинальной версии такого функционала нет.

Reset ★★★★★
()

Кажется OpenGL + SDL - это самая популярная связка. Теперь я думаю, чего бы почитать по OpenGL? Сейчас потихоньку читаю Суперкнигу. Вроде бы ничего, но кажется действительно ее сильно раздули до 1К страниц.

sol_linux ★★
() автор топика
Ответ на: комментарий от sol_linux

Да, кажется здесь действительно для кэпов

sol_linux ★★
() автор топика

Если нет особого желания изучать месу то лучше взять для 2d библиотеку SFML, стартанешь гораздо быстрее.

TheMixa ★★★
()

и начни со спрайтовой графики.

TheMixa ★★★
()
Ответ на: комментарий от sol_linux

> Кажется OpenGL + SDL - это самая популярная связка

Не поддерживает OpenGL 3 и старше. А если отказаться от SDL, не будет поддержки джойстика.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от sol_linux

Смотрел его, там тоже не было какого-то нужного функционала. В итоге я на на Qt перешел.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.