OpenGL программирование/Установка/Linux

Материал из Викиучебника — открытых книг для открытого мира

Установка OpenGL на Linux[править]

Большинство дистрибутивов Linux опираются на Mesa3D проект что бы обеспечить реализацию OpenGL. Они регулярно поставляют OpenGL библиотеки, а так же OpenGL ES 1.x и 2.0.

Точные имена пакетов необходимых для установки сильно зависят от дистрибутива. Ссылаясь на пакеты вашего дистрибутива, вы можете спасти себя от траты времени и головной боли в установке. Используйте ваш любимый менеджер пакетов и поиск по названию пакета. Вам, возможно, потребуется установить пакеты, с DEV суффиксом, это пакеты разработки (обычно файлы заголовков). Также смотрите в пакетах с lib-префиксом, которые относятся к библиотекам.

Установите GCC C/C++ компиляторы и связанные с ними инструменты, такие как make.

В общем, установите следущее:

  • mesa
  • make
  • gcc

Библиотеки[править]

В этом Викиучебнике, мы будем использовать GLEW, FreeGLUT и GLM, убедитесь, что вы установите библиотеки разработчика (примечание переводчика dev библиотеки):

  • glew
  • freeglut
  • glm

Если GLM не доступен в вашем репозитории, у вас есть возможность установить его вручную. Убедитесь, что заголовки размещены в каталоге /usr/include/glm. Так как это только заголовки библиотеки, вам не нужно компилировать .so библиотеки - просто скопируйте код.

Драйверы[править]

OpenGL является основным API 3D-графики в GNU/Linux-based системах. Если ваше устройство поддерживает 3D ускорение на GNU/Linux, оно, вероятно, включает в себя OpenGL.

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

Фирменные варианты[править]

Компания Nvidia обеспечивает в целом хороший, но не свободный драйвер nvidia. fglrx драйвер для многих современных устройств AMD; он также имеет закрытый исходный код и доступен на сайте AMD.

Свободные/Open-Source варианты.[править]

Если ваш процессор Intel с встроенной графикой, то необходимые драйверы с открытым исходным кодом поставляются в качестве стандартной части ядра Linux.

Если у вас установлен один из новейших чипов, вам возможно придётся использовать посредственный fglrx драйвер. Однако AMD выпустила спецификации для своих чипов, 'Radeon' с открытым исходным кодом сделал свой путь, для того чтобы стать полнофункциональным 2D и 3D драйвером.

По состоянию на июнь 2013 года, большинство чипов AMD хорошо работают с исходным драйвером "Radeon". 3D производительность с драйвером AMD Catalyst на современных картах еще лучше, но это может измениться в будущем. Можете проверить таблицу характеристик.

Nouveau драйвер с открытым исходным кодом поддерживает чипсеты NVIDIA, но в момент написания не так полон, как драйвера с закрытым исходным кодом от NVIDIA, поддержка 3D может быть не удовлетворительна.

Драйвер OpenGL на Linux-системах состоит из двух файлов:

  • libGL.so
  • glx.so

А так же многие OpenGL приложения требуют libGLU.so; Операции GLU не могут быть аппаратно ускоренны, поэтому реализация Mesa является отличным вариантом.

Проверьте ваши сведения о OpenGL[править]

Введите это в терминале, чтобы получить больше информации о вашем OpenGL драйвере, включая поддерживаемые расширения:

glxinfo | grep OpenGL

IDEs[править]

The tutorials will mostly rely on simple Makefiles to build the code, and let you edit the source with your favorite text editor, such as Emacs, vim, gedit, kwrite, etc.

Существует несколько IDE для GNU/Linux, такие как:

  • Code::Blocks
  • Anjuta
  • KDevelop
  • Eclipse CDT

Очень просто приспособить Мейкфайлы к этим системам.

Installing your own OpenGL headers[править]

In the unlikely event that your distribution does not supply packages for Mesa3D, you can build it from source with the usual

 ./configure
 make
 make install

installation procedure; however, be careful of conflicting opengl libraries.

Mesa's software implementation may override your distribution's libraries or libraries manually installed, such as the nvidia or fglrx OpenGL binaries. When this happens, search all directories listed with

ldconfig -Nv 2>/dev/null | awk -F: '/^\// {print $1}'

for libGL.so. The following command should output all the different OpenGL libraries available on your system:

find $(ldconfig -Nv 2>/dev/null | awk -F: '/^\// {print $1}') -name libGL.so -exec realpath {} \; | sort -u

It is usually OK if you have one the mesa library plus the proprietary library. On 64-bits systems, you may also have the lib32 library. Additional copies of libGL.so found in the ld search path (specified in /etc/lf.so.conf by default), if not referring to the same file, usually indicates a conflict. Remove all but the copy you want executed.

The headers will be installed to $PREFIX/include/GL (usually /usr/include/GL when installed from a packaged, or /usr/local/include/GL when installed manually from source).

"Official" OpenGL headers are available from SGI, however, they are hopelessly out of date.

Шаблон:OpenGL Programming BottomNav