Gl glut h linux

Знакомимся с OpenGL

Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.

Именования

  • Число параметров — указывает число принимаемых параметров. Принимает следующие значения: 1, 2, 3, 4
  • Тип параметров — указывает тип принимаемых параметров. Возможны следующие значения: b, s, i, f, d, ub, us, ui. Т.е. byte (char в C, 8-битное целое число), short (16-битное целое число), int (32-битное целое число), float (число с плавающей запятой), double (число с плавающей запятой двойной точности), unsigned byte, unsigned short, unsigned int (последние три — беззнаковые целые числа)
  • Представление параметров — указывает в каком виде передаются параметры, если каждое число по отдельности, то ничего не пишется, если же параметры передаются в виде массива, то к названию функции дописывается буква v

Графика

  • GL_POINTS — каждая вершина задает точку
  • GL_LINES — каждая отдельная пара вершин задает линию
  • GL_LINE_STRIP — каждая пара вершин задает линию (т.е. конец предыдущей линии является началом следующей)
  • GL_LINE_LOOP — аналогично предыдущему за исключением того, что последняя вершина соединяется с первой и получается замкнутая фигура
  • GL_TRIANGLES — каждая отдельная тройка вершин задает треугольник
  • GL_TRIANGLE_STRIP — каждая следующая вершина задает треугольник вместе с двумя предыдущими (получается лента из треугольников)
  • GL_TRIANGLE_FAN — каждый треугольник задается первой вершиной и последующими парами (т.е. треугольники строятся вокруг первой вершины, образуя нечто похожее на диафрагму)
  • GL_QUADS — каждые четыре вершины образуют четырехугольник
  • GL_QUAD_STRIP — каждая следующая пара вершин образует четырехугольник вместе с парой предыдущих
  • GL_POLYGON — задает многоугольник с количеством углов равным количеству заданных вершин
  1. glBegin ( GL_QUADS ) ;
  2. glColor3f ( 1.0 , 1.0 , 1.0 ) ;
  3. glVertex2i ( 250 , 450 ) ;
  4. glColor3f ( 0.0 , 0.0 , 1.0 ) ;
  5. glVertex2i ( 250 , 150 ) ;
  6. glColor3f ( 0.0 , 1.0 , 0.0 ) ;
  7. glVertex2i ( 550 , 150 ) ;
  8. glColor3f ( 1.0 , 0.0 , 0.0 ) ;
  9. glVertex2i ( 550 , 450 ) ;
  10. glEnd ( ) ;

Основы программы на OpenGL

  • GLUT_RGBA — включает четырехкомпонентный цвет (используется по умолчанию)
  • GLUT_RGB — то же, что и GLUT_RGBA
  • GLUT_INDEX — включает индексированный цвет
  • GLUT_DOUBLE — включает двойной экранный буфер
  • GLUT_SINGLE — включает одиночный экранный буфер (по умолчанию)
  • GLUT_DEPTH — включает Z-буфер (буфер глубины)
  • GLUT_STENCIL — включает трафаретный буфер
  • GLUT_ACCUM — включает буфер накопления
  • GLUT_ALPHA — включает альфа-смешивание (прозрачность)
  • GLUT_MULTISAMPLE — включает мультисемплинг (сглаживание)
  • GLUT_STEREO — включает стерео-изображение
  • void glutDisplayFunc (void (*func) (void)) — задает функцию рисования изображения
  • void glutReshapeFunc (void (*func) (int width, int height)) — задает функцию обработки изменения размеров окна
  • void glutVisibilityFunc (void (*func)(int state)) — задает функцию обработки изменения состояния видимости окна
  • void glutKeyboardFunc (void (*func)(unsigned char key, int x, int y)) — задает функцию обработки нажатия клавиш клавиатуры (только тех, что генерируют ascii-символы)
  • void glutSpecialFunc (void (*func)(int key, int x, int y)) — задает функцию обработки нажатия клавиш клавиатуры (тех, что не генерируют ascii-символы)
  • void glutIdleFunc (void (*func) (void)) — задает функцию, вызываемую при отсутствии других событий
  • void glutMouseFunc (void (*func) (int button, int state, int x, int y)) — задает функцию, обрабатывающую команды мыши
  • void glutMotionFunc (void (*func)(int x, int y)) — задает функцию, обрабатывающую движение курсора мыши, когда зажата какая-либо кнопка мыши
  • void glutPassiveMotionFunc (void (*func)(int x, int y)) — задает функцию, обрабатывающую движение курсора мыши, когда не зажато ни одной кнопки мыши
  • void glutEntryFunc (void (*func)(int state)) — задает функцию, обрабатывающую движение курсора за пределы окна и его возвращение
  • void glutTimerFunc (unsigned int msecs, void (*func)(int value), value) — задает функцию, вызываемую по таймеру
Читайте также:  Установить java jre linux

Первая программа

Теперь мы знаем основы работы с OpenGL. Можно написать простую программу для закрепления знаний.
Начнем с того, что нужно подключить заголовочный файл GLUT:

  1. #if defined(linux) || defined(_WIN32)
  2. #include /*Для Linux и Windows*/
  3. #else
  4. #include /*Для Mac OS*/
  5. #endif

Теперь мы уже знаем, что писать в main. Зарегистрируем два обработчика: для рисования содержимого окна и обработки изменения его размеров. Эти два обработчика по сути используются в любой программе, использующей OpenGL и GLUT.

Теперь надо написать функцию-обработчик изменений размеров окна. Зададим область вывода изображения размером со все окно при помощи команды glViewport (х, у, ширина, высота). Затем загрузим матрицу проекции glMatrixMode (GL_PROJECTION), заменим ее единичной glLoadIdentity () и установим ортогональную проекцию. И наконец загрузим модельно-видовую матрицу glMatrixMode (GL_MODELVIEW) и заменим ее единичной.
В итоге получим:

  • GL_COLOR_BUFFER_BIT — для очистки буфера цвета
  • GL_DEPTH_BUFFER_BIT — для очистки буфера глубины
  • GL_ACCUM_BUFFER_BIT — для очистки буфера накопления
  • GL_STENCIL_BUFFER_BIT — для очистки трафаретного буфера

Итог

screen

Все! Можно компилировать. Должно получиться что-то вроде этого:

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

OpenGL — удобный инструмент для создания кроссплатформенных приложений, использующий графику. OpenGL легко использовать с тем языком программирования, который вам более удобен. Привязки к OpenGL есть для множества популярных языков, таких как C, C++, C#, Java, Python, Perl, VB и других. Посмотреть информацию о них можно на официальном сайте OpenGL.

Источник

How to Install OpenGL on Ubuntu Linux

What Is OpenGL?
OpenGL is a Graphics rendering API which is operating system independent, window system independent and has high-quality color images composed of geometric and image primitives.
OpenGL APIs can use following …

  • Gl
    • OpenGL API implementation (http://www.opengl.org)
    • OpenGL Utility
    • OpenGL Utility Toolkit (http://www.opengl.org/resources/libraries/glut/)
    • FlashLight ToolKit (http://www.fltk.org/)

    Now lets see How to install OpenGL on out Ubuntu OS.

    Now because GLUT (OpenGL Utility Toolkit) depends upon OpenGL and a number of other related libraries, if we install GLUT then OpenGL will be automatically be installed.

    Run the following commands to install OpenGL.

    $ sudo apt-get update $ sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

    Now to test if OpenGl libraries are working fine on our Linux, we will create a C++ program and test it.

    So create a following C++ Program.

    #include void displayMe(void) < glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex3f(0.5, 0.0, 0.5); glVertex3f(0.5, 0.0, 0.0); glVertex3f(0.0, 0.5, 0.0); glVertex3f(0.0, 0.0, 0.5); glEnd(); glFlush(); >int main(int argc, char** argv)

    Now give the command below to compile your code.

    $ g++ main.cpp -o firstOpenGlApp -lglut -lGLU -lGL

    Now run your OpenGl program with following command

    opengl_out

    If a window pops up when you run the program, then OpenGL is working on your Ubuntu OS.

    Источник

    How to install OpenGL in Ubuntu in C++?

    Now because GLUT (OpenGL Utility Toolkit) depends upon OpenGL and a number of other related libraries, if we install GLUT then OpenGL will be automatically be installed.

    First update the repository using the given command

    Run the following command to install OpenGL.

    $ sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev 

    Now to test if OpenGL libraries are working fine on our Linux machine, we will create a C++ program and test it.

    So create a following C++ Program.

    #include  void displayMe(void)  glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex3f(0.5, 0.0, 0.5); glVertex3f(0.5, 0.0, 0.0); glVertex3f(0.0, 0.5, 0.0); glVertex3f(0.0, 0.0, 0.5); glEnd(); glFlush(); > int main(int argc, char** argv)  glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowSize(400, 300); glutInitWindowPosition(100, 100); glutCreateWindow("Hello world!"); glutDisplayFunc(displayMe); glutMainLoop(); return 0; > 

    Now give the command below to compile your code.

    $ g++ main.cpp -o firstOpenGlApp -lglut -lGLU -lGL 

    Now run your OpenGl program with following command

    OpenGl in Ubuntu using C++

    You will see something like this on your screen if everythings went well.

    Источник

    How to Install OpenGL on Ubuntu 20.04 Linux

    In this post we will see how to install OpemGL on Ubuntu.In order to install OpenGlL you need to type only few commands .Here we will be looking at step by step process to install OpemGL:

    1.First open your terminal and update the repository using command : $ sudo apt update

    After entering your password your update will be done .

    2.In this command your installation will be completed.Type the following command : $sudo apt-get install freeglut3-dev

    After completion it will look like this :

    .
    3. To test if OpenGl libraries are working fine on our Linux, we will create a C++ program and test it.
    So create a following C++ Program.

    #include void displayMe(void) < glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex3f(0.5, 0.0, 0.5); glVertex3f(0.5, 0.0, 0.0); glVertex3f(0.0, 0.5, 0.0); glVertex3f(0.0, 0.0, 0.5); glEnd(); glFlush(); >int main(int argc, char** argv)

    Now give the command below to compile your code.

    $ g++ main.cpp -o firstOpenGlApp -lglut -lGLU -lGL Now run your OpenGl program with following command $ ./firstOpenGlApp

    opengl_out

    If a window pops up when you run the program, then OpenGL is working on your Ubuntu OS.In this way , following these steps you will be able to install OpenGL and use it.

    Источник

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