Opengl для linux astra

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

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

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

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

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

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

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

Если 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.

Читайте также:  What is maltego kali linux

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

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

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

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

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

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

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

IDEs [ править ]

The tutorials will mostly rely on simple Makefile s 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, такие как:

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

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: '/^\// '

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: '/^\// ') -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 к проекту?

введите сюда описание изображения

Не получается в астра линуксе поднять проект с openGL-ом . Вот два примера: первый это 2dpainting из примера , окна Qt поднимаются а вот сама библиотека опенгл не «подтягивается» второй: про файл

TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt SOURCES += \ main.cpp #- INCLUDEPATH += $$PWD/glfw_bin/include/GLFW/ \ # добавляем для удобства чтоб напрямую писать $$PWD/glew_bin/include/GL/ \ # только название заголовчного файла без полного пути $$PWD/stb_image/ HEADERS += \ glfw_bin/include/GLFW/glfw3.h \ glfw_bin/include/GLFW/glfw3native.h \ glew_bin/include/GL/glew.h \ # --- linux --- unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lOpenGL INCLUDEPATH += $$PWD/../../../../usr/include/GL DEPENDPATH += $$PWD/../../../../usr/include/GL unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lGLEW INCLUDEPATH += $$PWD/../../../../usr/include/GL DEPENDPATH += $$PWD/../../../../usr/include/GL unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lglut INCLUDEPATH += $$PWD/../../../../usr/include/GL DEPENDPATH += $$PWD/../../../../usr/include/GL unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lGLU INCLUDEPATH += $$PWD/../../../../usr/include/GL DEPENDPATH += $$PWD/../../../../usr/include/GL 
#include #include #include #include #include #define PI 3.14159265358979324 using namespace std; // Globals. static float R = 40.0; // Radius of circle. static float X = 50.0; // X-coordinate of center of circle. static float Y = 50.0; // Y-coordinate of center of circle. static int numVertices = 5; // Number of vertices on circle. // Drawing routine. void drawScene(void) < float t = 0; // Angle parameter. int i; glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); // Draw a line loop with vertices at equal angles apart on a circle // with center at (X, Y) and radius R, The vertices are colored randomly. glBegin(GL_LINE_LOOP); for(i = 0; i < numVertices; ++i) < glColor3f((float)rand()/(float)RAND_MAX, (float)rand()/(float)RAND_MAX, (float)rand()/(float)RAND_MAX); glVertex3f(X + R * cos(t), Y + R * sin(t), 0.0); t += 2 * PI / numVertices; >glEnd(); // glFlush(); glutSwapBuffers(); > // Initialization routine. void setup(void) < glClearColor(1.0, 1.0, 1.0, 0.0); >// OpenGL window reshape routine. void resize(int w, int h) < glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 100.0, 0.0, 100.0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); >// Keyboard input processing routine. void keyInput(unsigned char key, int x, int y) < switch(key) < case 27: exit(0); break; case '+': numVertices++; glutPostRedisplay(); break; case '-': if (numVertices >3) numVertices--; glutPostRedisplay(); break; default: break; > > // Routine to output interaction instructions to the C++ window. void printInteraction(void) < cout // Main routine. int main(int argc, char **argv) < printInteraction(); glutInit(&argc, argv); glutInitContextVersion(4, 3); glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE); // glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("circle.cpp"); glutDisplayFunc(drawScene); glutReshapeFunc(resize); glutKeyboardFunc(keyInput); glewExperimental = GL_TRUE; glewInit(); setup(); glutMainLoop(); >

введите сюда описание изображения

Сами библиотеки в операциоке присутствуют а вот результат (этот код прекрасно работает в убунте)

Читайте также:  Линукс сменить владельца папки

Источник

Установка драйвера NVIDIA на Astra Linux Common Edition 2.11/2.12

Эта статья описывает установку на компьютеры с картой Nvidia.

Для ноутбуков и моноблоков с гибридной графикой планируется отдельная статья.

Установить необходимые пакеты:

Скачать с сайта nvidia.ru драйвер, выбрать тип, серию и семейство продукта, в поле «Операционная система» выбрать «Показать все операционные системы» и выбрать «Linux 64bit»

Далее необходимо отключить свободный драйвер nouveau:

В /etc/modprobe.d/blacklist.conf добавить строки:

blacklist nouveau options nouveau modeset=0

В /etc/initramfs-tools/modules удалить или закомментировать строку

После загрузки, перейти в терминал нажатием CTRL+ALT+F1, выполнить вход и выполнить команду:

Перейти в директорию с загруженным драйвером сделать файл исполняемым и установить:

Для проверки работоспособности драйвера в терминале выполнить команду glxinfo:

u@astra:~$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 440/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 390.42
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 390.42
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.42
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

Источник

Оцените статью
Adblock
detector