Графическая библиотека для 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++ или графике и т. д.

Давайте создадим еще один список 2D движков:

Все эти комбинации поддерживают 2D-графику + ввод.

Существует довольно хорошее руководство по SDL, которое показывает вам, как перехватить ввод и т. Д. На http://lazyfoo.net/SDL_tutorials/

Он основан на игровом дизайне, но из него вы можете изучить концепцию SDL-программы.

Надеюсь, что это полезно для вашего вопроса: "Если вы знаете какой-либо хороший источник информации о SDL, OpenGL или DirectX, я был бы рад узнать об этом".

Вы можете программировать на C++ CLI/CLR и использовать Windows API как

  1. Direct2D: на MSDN
  2. GDI +

Вот интересная ссылка на MSDN

Для 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

Чтобы использовать этот инструмент, вы можете использовать настольный компьютер для отображения графики.

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

Другие вопросы по тегам