Графическая библиотека для C++
Я работаю над проектом моделирования в C++, и мне нужно выводить некоторую информацию графически. Я искал об этом и нашел несколько библиотек, но большинство из них просто делают заговоры или что-то в этом роде. Существуют также библиотеки, такие как EasyBMP, которые можно использовать для создания растровых изображений или аналогичных форматов изображений. Есть также некоторые библиотеки, такие как OpenGL, DirectX и SDL, которые позволяют аппаратно ускоренную графику в реальном времени. Моя проблема в том, что мне нужна библиотека для графики с аппаратным ускорением в реальном времени. Как новичок в этой области, я не могу придумывать что-то вроде OpenGL или DirectX. Мне нужно работать только с 2D-графикой, поэтому я не думаю, что нужно тратить свое время на изучение OpenGL или чего-то еще. Лучше быть кроссплатформенным, но это не обязательно. Если вы знаете какой-либо хороший источник информации о SDL, OpenGL или DirectX, я был бы рад узнать об этом.
PS: Моя целевая платформа - Windows.
5 ответов
Изучив основы OpenGL на 10-недельном университетском курсе, который был в основном сфокусирован на моделировании статистических данных, я определенно думаю, что OpenGL будет разумным вариантом для простого в освоении графического пакета для 2D-моделирования в реальном времени.
Хотя для OpenGL определенно есть сложность, вам не нужно разбираться со всеми этими функциями, которые вам не нужны, чтобы сделать базовый проект с графическим экраном - это почти весь стандартный код, который вам не нужно хорошо понимать, Вы можете практически скопировать и вставить из примера проекта. Например, вот несколько примеров программ, которые идут с учебником по OpenGL. Настройка всей библиотеки как части вашего проекта - это просто добавление пары.lib-файлов в определенное место в настройках конфигурации, для того, чтобы она "что-то сделала", не требуется много, и тогда вам потребуется только Чтобы познакомиться с небольшим подмножеством функций, мне это казалось почти проще, чем, скажем, рисовать 2D-вещи в Java.
Я не очень хорошо знаю ни один из этих других инструментов моделирования, просто подумал, что я бы добавил, что я не буду слишком быстро его списывать, потому что он "слишком сложен", и было бы разумно рассмотреть это, даже без огромный фон в C++ или графике и т. д.
Существует довольно хорошее руководство по SDL, которое показывает вам, как перехватить ввод и т. Д. На http://lazyfoo.net/SDL_tutorials/
Он основан на игровом дизайне, но из него вы можете изучить концепцию SDL-программы.
Надеюсь, что это полезно для вашего вопроса: "Если вы знаете какой-либо хороший источник информации о SDL, OpenGL или DirectX, я был бы рад узнать об этом".
Для 2D я рекомендую HGE, игровой движок, использующий DX в качестве графического драйвера, с которым легко начать. Он может работать только под Windows, но вот порт для MAC/UNIX
Проблема, с которой вы столкнетесь при использовании SDL, заключается в том, что он не поддерживает аппаратное ускорение. Да, он поддерживает OpenGL, но если вы хотите использовать его с opengl, вы должны делать все самостоятельно,
Если вам нужно только построить отладочную информацию, я создал инструмент для построения графики и опубликовал его несколько часов назад.
https://www.youtube.com/watch?v=xD080qQVaD8&feature=youtu.be
https://github.com/burlachenkok/plotter_plusplus
Чтобы использовать этот инструмент, вы можете использовать настольный компьютер для отображения графики.
Но целевой проект (симулятор) можно запустить где угодно на любом языке, на любой платформе - для обновления графики достаточно просто отправить данные по сети.