2011-12-17 3 views
3

Я работаю над симуляционным проектом на C++, и мне нужно выводить некоторую информацию графически. Я искал об этом и нашел несколько библиотек, но большинство из них просто замышляют или что-то в этом роде. Существуют также библиотеки, такие как EasyBMP, которые можно использовать для создания растровых изображений или аналогичных форматов изображений. Существуют также некоторые библиотеки, такие как OpenGL, DirectX и SDL, которые позволяют графику в режиме реального времени с аппаратным ускорением. Моя проблема в том, что мне нужна библиотека для реального времени, аппаратная ускоренная графика. Как новичок в этой области, я не могу сделать голову или хвост чего-то вроде OpenGL или DirectX. Мне нужно всего лишь заняться 2D-графикой, поэтому я не думаю, что нужно тратить время на изучение OpenGL или что-то в этом роде. Лучше быть кросс-платформенным, но это не обязательно. Если вы знаете хороший источник информации о SDL или OpenGL или DirectX, я был бы рад узнать об этом.Graphics Library for C++

PS: Моя целевая платформа - это окна.

+0

На какой платформе вы нацеливаетесь? –

+0

2D: SDL, Allegro. 3D: Ogre3D, Irrlicht. Читая документацию и решая, какой из них вам подходит: бесценный. –

+0

Рассмотрим Каир с glitz бэкэнд. –

ответ

2

Изучив основы OpenGL в 10-недельном университетском курсе, в основном ориентированном на моделирование статистических данных, я бы определенно подумал, что OpenGL станет разумным вариантом для простого в освоении графического пакета для 2D моделирования в режиме реального времени.

Несмотря на то, что для OpenGL существует определенная сложность, вам не нужно обволакивать все эти функции, которые вам не нужны, чтобы создать базовый проект с графическим экраном - это почти весь шаблонный код, который вам не нужен чтобы хорошо понимать, вы могли бы практически скопировать и вставить из образца проекта. Например, here are some sample programs, которые идут с учебником по OpenGL. Конфигурирование всей библиотеки, которая будет частью вашего проекта, - это просто вопрос о добавлении пары .lib-файлов в определенное место в настройках конфигурации, это не займет много времени, чтобы заставить «сделать что-то», а затем вам понадобится только для ознакомления с небольшим подмножеством функций, мне это казалось почти проще, чем, скажем, рисовать 2D-файлы на Java.

Я действительно не знаю ни одного из этих инструментов моделирования, просто подумал, что я выброшу туда, что я бы не писал, что слишком быстро, как «слишком сложный», было бы разумно рассмотрите даже без огромного фона на C++ или графике и т. д.

0

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

Он основан на дизайне игры, но вы можете узнать понятие в SDL программы из него.

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

+2

Отлично, учебник по захвату ввода, когда ОП только спрашивает о графике. Это будет полезно. ;) – jalf

+0

Да, это также показывает графику как графическую библиотеку. Однако ввод полезен, поскольку большинству систем нужен способ взаимодействия: p – Dobbo1989

+0

Спасибо. Это будет полезно. – MMS

0

Для 2D я рекомендую HGE, игра использует DX как графический драйвер, с которого легко начать. Он может работать только под Windows, но here - это порт для MAC/UNIX

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

0

Если вам нужно только распечатать информацию об отладке, я создал инструмент для графического изображения и опубликовал его несколько часов назад.

https://www.youtube.com/watch?v=xD080qQVaD8&feature=youtu.be

https://github.com/burlachenkok/plotter_plusplus

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

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