Як встановити OpenGL у Windows
Сучасні комп'ютери стають все потужнішими, і, відповідно, для їх нормального функціонування необхідно якісне програмне забезпечення. Все частіше для ігор, 3D-моделювання та відеомонтажу використовуються графічні бібліотеки OpenGL. чи ця технологія на комп'ютері, і опишу кілька способів встановлення у Windows 7 та Windows 10.
Для чого потрібний OpenGL
OpenGL розшифровується як Open Graphics Library і є інтерфейсом прикладного програмування API з відкритим вихідним кодом.
Як визначити, яка версія OpenGL встановлена у Windows
У будь-якій сучасній операційній системі, не тільки Windows, підтримка OpenGL вбудована. у розділі з основними відомостями Зазвичай цей розділ відображається в контекстному меню робочого столу або прихованих. значки на панелі завдань.
Ось так відображається версія OpenGL у налаштуваннях відеокарти Intel
У розділі "Налаштування" графічних карт AMD також відображається встановлена на даний момент версія OpenGL
Як встановити OpenGL на різні відеокарти
Для встановлення або оновлення OpenGL необхідно просто завантажити останню версію драйвера відеокарти.І зробити це можна як через офіційний сайт виробника чіпсету, так і за допомогою вбудованої у систему утиліти «Диспетчер пристроїв».
AMD
Завантажувати оновлення драйверів відеокарти бажано саме з офіційного сайту компанії AMD. На ньому можна підібрати конкретний тип процесора і серію. , їх потрібно лише знайти. Для цього варто вводити запит безпосередньо в пошуковику, а потім відкривати офіційну сторінку і скачувати софт.
На сайті AMD пропонуються оновлення окремо для ОС Windows 7 та 10
Intel
На сайті центру завантаження компанії Intel можна налаштувати автоматичне оновлення драйверів, вручну шукати програмне забезпечення на ньому незручно. підтримки, але особливої різниці немає. Там так само будуть вказані версії для конкретних операційних систем.
Тут пропонуються оновлення драйверів на офіційному сайті Intel
Доступно також скачування з Центру завантаження компанії, причому тут є фільтр операційних систем
NVIDIA GeForce
На сайті NVIDIA пошук робиться куди простіше. Можна вказати тип пристрою, його серію, операційну систему, мову і навіть вид драйвера.
Компанія NVIDIA передбачає два варіанти завантаження з офіційного сайту
Диспетчер пристроїв
Ще один варіант, спрощеніший і доступніший, особливо в Windows 10 – пошукати оновлення через «Диспетчер пристроїв».Відкрити його можна, натиснувши на комбінацію клавіш Win+X і знайшовши в контекстному меню відповідний пункт.
Спершу я відкрию «Диспетчер пристроїв» через контекстне меню іконки «Пуск»
У новому вікні відкриваю розділ «Відеоадаптери», натискаю правою кнопкою миші на потрібний графічний процес, потім вибираю пункт «Оновити драйвер». Система запропонує встановити їх із комп'ютера або завантажити онлайн. У другому випадку розпочнеться пошук оновлень.
Натискаю правою кнопкою миші на потрібний відеоадаптер і оновлюю драйвера
Завантаження інсталятора з Інтернету
Допустимо ще варіант завантаження установника OpenGL з мережі Інтернет. Правда, офіційного сайту в цьому випадку немає, тому ця процедура проводиться на страх та ризик користувача. Якщо джерела перевірені, можна завантажити та встановити програму без особливих коливань та перешкод.
Висновок
Зазвичай OpenGL заздалегідь встановлений у системі, незалежно від її версії та новизни апаратної частини комп'ютера. Якщо в іграх або програмах потрібне оновлення цього програмного забезпечення, можна спочатку спробувати завантажити і встановити нову версію драйверів. Після цього проблема зазвичай зникає. Є також варіант завантаження через «Диспетчер пристроїв» або інсталяція програми, завантаженої з Інтернету.
Вступ
Перед тим, як перейти безпосередньо до OpenGL, ви дізнаєтесь як відкомпілювати код, яким супроводжується кожен урок і як його запустити.
Навички
Щоб працювати з цими уроками вам не знадобиться додаткових навичок. Досвід у будь-якій мові програмування (C, Java, Lisp, JavaScript та інших) допоможе вам краще розуміти суть, але не обов'язковий.
Всі уроки написані на “легкому” C++ і ми витратили багато зусиль, щоб зробити код настільки простим, наскільки це можливо. Тут не буде шаблонів, класів та покажчиків, що дозволить вам зрозуміти все, навіть якщо ви знаєте лише Java.
Забудьте все
Забудьте все, що ви знали про OpenGL раніше, якщо ваші знання стосуються glBegin() і подібних функцій. старий” OpenGL (OpenGL 1 та 2).
Компіляція вихідного коду уроків
Весь вихідний код до уроків можна скомпілювати на таких платформах, як Windows, Linux, Mac.
- Оновіть драйвери! Обов'язково зробіть це, якщо ми вас попереджали :)
- Завантажте компілятор, якщо у вас його досі немає.
- Встановіть CMake
- Завантажте вихідний код уроку
- Створіть проект за допомогою CMake
- Скомпілюйте проект
- Змінюйте його :)
Тепер розглянемо процедуру докладніше для кожної платформи.
##Компіляція у Windows
- Оновлення драйверів повинно бути для вас легкою задачею. цього перейдіть в Панель управління -> Система -> Диспетчер пристроїв -> Відео адаптер. Якщо у вас вбудований Intel GPU, то драйвери завжди поставляються у комплекті.
- Ми пропонуємо вам використовувати Visual Studio 2015 Express for Desktop як середовище, яке ви можете безкоштовно скачати тут. Якщо ж ви захочете використовувати MinGW, то рекомендуємо вам Qt Creator. розглядаються в Visual Studio, швидше за все, відмінності в інших IDE будуть мінімальні.
- Завантажте CMake та встановіть його.
- Завантажте вихідний код, розпакуйте його наприклад у C:/Users/XYZ/Projects/OpenGLTutorials
- Запустіть CMake.У першому полі вкажіть шлях до розпакованої папки. Якщо сумніваєтеся, це та папка, де знаходиться файл CMakeLists.txt. У другому полі вкажіть папку, в яку будуть записуватися виконувані файли, наприклад, ви можете вказати тут C:/Users/XYZ/Projects/OpenGLTutorials-build-Visual2010-32bits або щось подібне. До речі, ця папка може знаходитися будь-де.
- Натисніть кнопку Configure. Так як ви вперше налаштовуєте проект CMake запитає вас, який компілятор ви хочете використовувати. Тут все впирається у ваш інструментарій, який ви вибрали за крок 2. До речі, якщо у вас Windows 64-bit, то ви можете вибрати 64-розрядні компілятори, але якщо ви не впевнені, то використовуйте 32.
- Натискайте Configure, доки не зникнуть всі червоні рядки. Далі натисніть Generate. Тепер ваш Visual Studio проект створений, і ви можете забути про CMake. Можете навіть видалити його, якщо хочете:)
- Відкрийте у Visual Studio файл Tutorials.sln у папці, яку ви вказували у другому полі головного вікна CMake (C:/Users/XYZ/Projects/OpenGLTutorials-build-Visual2010-32bits). У меню Build натисніть Build All. Вихідний код кожного уроку та залежностей буде відкомпільовано. Також кожен виконуваний файл буде скопійовано назад у C:/Users/XYZ/Projects/OpenGLTutorials . Сподіваємось у вас не виникне помилок.
- Відкрийте C:/Users/XYZ/Projects/OpenGLTutorials/playground та запустіть playground.exe. Якщо все пройшло гладко, то у вас має з'явитись чорне вікно.
Ви також можете запустити будь-який урок Visual Studio. Для цього натисніть правою кнопкою миші на Playground та оберіть “Choose as startup project”. Для налагодження використовуйте клавішу F5.
##Компіляція в Linux
Існує велика кількість різних дистрибутивів Linux і, природно, розглянути особливості кожного дистрибутива виходить за рамки даного уроку, тому не забудьте почитати документацію свого дистрибутива.
- Встановіть останні драйвери. Ми рекомендуємо вам використовувати закриті драйвери.Це не GNU, але вони працюють. Якщо ваш дистрибутив не надає автоматичної установки, можете спробувати переглянути документацію до Ubuntu
- Встановіть усі необхідні компілятори, утиліти та бібліотеки. Повний список має такий вигляд:
- cmake
- make
- g++
- libx11-dev
- libxi-dev
- libgl1-mesa-dev
- libglu1-mesa-dev
- libxrandr-dev
- libext-dev
Використовуйте sudo apt-get install *** або su && yum install ****.
- Завантажте вихідний код і розпакуйте його, наприклад ~/Projects/OpenGLTutorials/
- Перейдіть до ~/Projects/OpenGLTutorials/ і введіть такі команди:
- mkdir build
- cd build
- cmake ..
- makefile буде створено в директорії build
- Виконайте команду make all. Весь вихідний код до уроків буде скомпільовано, а кожен виконуваний файл буде скопійовано в ~/Projects/OpenGLTutorials/. Сподіваємось у вас не виникне помилок :)
- Відкрийте ~/Projects/OpenGLTutorials/playground та виконайте ./playground. Якщо все пройшло гладко, то у вас має з'явитись чорне вікно.
Зверніть увагу, що найкращим рішенням буде використовувати IDE, таку як Qt Creator. Вона має підтримку CMake та надає зручні інструменти для налагодження. Інструкція для QtCreator:
- У QtCreator перейдіть в меню File -> Tools -> Options -> Compile&Execute -> CMake
- Встановіть шлях до CMake. Найчастіше це /usr/bin/cmake
- File -> Open Project і виберіть tutorials/CMakeLists.txt
- Виберіть каталог, до якого потрібно помістити скомпіловані файли. Найкраще вибрати директорію поза tutorials
- Опційно встановіть -DCMAKE_BUILD_TYPE=Debug у Parameters та використовуйте Validate.
- Натисніть на значок молота внизу. Тепер уроки можуть бути запущені з директорії tutorials/
- Щоб запускати уроки безпосередньо з QtCreator, перейдіть в Projects -> Execution parameters -> Working Directory і виберіть директорію, в якій знаходяться шейдери, текстури і моделі. Наприклад, для Уроку 2 це буде: ~/opengl-tutorial/tutorial02_red_triangle/
Mac OS не підтримує OpenGL 3.3.Останні Маки з MacOS 10.7 Lion та сумісними GPU можуть працювати з OpenGL 3.2, але не з 3.3. Тому використовуйте вихідний код уроків 2.1. В іншому процедура компіляції дуже схожа на процедуру в Windows (Makefile також підтримуються, але не розглядатимуться):
- Встановіть XCode із Mac App Store
- Завантажте CMake і встановіть .dmg. Немає необхідності встановлювати утиліти командного рядка.
- Завантажте вихідний код (обов'язково версія 2.1) і розпакуйте його наприклад ~/Projects/OpenGLTutorials/ .
- Запустіть CMake (Applications -> CMake). У першому полі введення вкажіть шлях до папки з вихідним кодом уроків. Якщо сумніваєтеся, це папка, що містить файл CMakeLists.txt. У другому полі вкажіть де ви хочете зберегти файли, що виконуються. Наприклад, це може бути ~/Projects/OpenGLTutorials_bin_XCode/. Зверніть увагу, ця папка може знаходитися будь-де.
- Натисніть кнопку Configure. Так як ви використовуєте конфігурацію вперше, то CMake запитає у вас, який компілятор ви хочете використовувати. Виберіть XCode.
- Натискайте Configure, доки не зникнуть всі червоні рядки. Натисніть Generate. Тепер створений проектний файл для XCode, і ви можете забути про CMake, і навіть можете видалити його, якщо захочете.
- Відкрийте ~/Projects/OpenGLTutorials_bin_XCode/ . Знайдіть та відкрийте файл Tutorials.xcodeproj
- Виберіть урок, який хочете запустити в XCode Scheme Panel і натисніть кнопку Run для компіляції та запуску
##Увага для користувачів Code::Blocks
Через 2 баги (один у C::B, один у CMake), вам необхідно змінити командний рядок Project -> Build Options -> Make commands, як вказано на скріншоті:
Вам також необхідно встановити робочу директорію: Project -> Properties -> Build targets -> tutorial N -> робоча директорія файлів, що виконуються (це src_dir/tutorial_N)
Запуск уроків
Щоб запустити виконуваний файл уроку, просто виконайте подвійне клацання мишею на файлі в потрібній директорії.Якщо ви надаєте перевагу командному рядку, то не забудьте використовувати команду cd, щоб перейти в потрібну директорію.
Якщо ви хочете запустити урок з IDE, не забудьте прочитати інструкції, дані вище, щоб встановити коректну робочу директорію.
Як працювати з уроками
До кожного уроку додається вихідний код і всі необхідні файли даних, які можуть бути знайдені в tutorialXX/. так, як вам захочеться. Якщо з якихось причин у вас його немає, то просто скопіюйте код будь-якого уроку туди. і все.
Ми надаємо фрагменти коду у кожному уроці. Не соромтеся копіювати ці фрагменти в playground, поки читаєте та експериментувати з ними – це хороша практика, набагато краща, ніж просто читати готовий код або просто копіювати його.
Відчиняємо вікно
Нарешті! Настав час коду OpenGL!
Хоча… Всі уроки будуть показувати вам низькорівневий шлях для тих чи інших завдань, таким чином ви бачитимете, що тут немає ніякої магії, проте відкриття вікна – завдання нудне, тому ми будемо використовувати зовнішню бібліотеку GLFW для цієї роботи. зробити це самі, то вам необхідно використовувати Win32 API в Windows, X11 API в Linux, Cocoa API в Mac Також ви можете використовувати інші. бібліотеки, такі як: SFML, FreeGLUT, SDL та подібні (див. сторінку Посилання).
Отже, поїхали! Перше що ми робимо – це розбираємось із залежностями.
// Включаємо стандартні заголовки
#include
#include
Далі нам необхідний GLEW. Тут є трохи магії, але перейдемо до пояснень пізніше.
// Включаємо GLEW.
#include
Ми будемо використовувати GLFW для обробки вікна та клавіатури, так що включаємо його теж.
// Включаємо GLFW
#include
Наступний заголовок не є необхідним в даний момент, оскільки є бібліотекою тривимірної математики, але пізніше буде дуже корисним. У ньому немає ніякої магії і якщо ви знаєте математику, то можете написати свій аналог. Що стосується “using namespace glm”, то цей рядок перекладає простір імен у glm, щоб можна було писати “vec3” замість “glm::vec3”.
// Включаємо GLM
#include
using
namespace
glm;
Якщо ви скопіювали код, представлений вище в playground.cpp, то компілятор попередить вас, що немає функції main(), тому додамо її:
У тілі функції насамперед ініціалізуємо GLFW:
// Ініціалізуємо GLFW
if(
!glfwInit()
)
fprintf(
stderr,
"Помилка під час ініціалізації GLFWn"
);
return
-1;
>
Тепер ми можемо створити наше перше OpenGL вікно! :)
glfwWindowHint(GLFW_FSAA_SAMPLES,
4);
// 4x Згладжування
glfwWindowHint(GLFW_OPENGL_VERSION_MAJOR,
3);
// Ми хочемо використовувати OpenGL 3.3
glfwWindowHint(GLFW_OPENGL_VERSION_MINOR,
3);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT,
GL_TRUE);
// To make MacOS happy; should not be needed
glfwWindowHint(GLFW_OPENGL_PROFILE,
GLFW_OPENGL_CORE_PROFILE);
// Ми не хочемо старий OpenGL
// Відкрити вікно та створити в ньому контекст OpenGL
GLFWwindow*
window;
// (У супровідному вихідному коді ця змінна є глобальною)
window
=
glfwCreateWindow(
1024,
768,
"Tutorial 01",
NULL,
NULL);
if(
window
==
NULL
) fprintf(
stderr,
"Неможливо відкрити вікно GLFW. Якщо у вас Intel GPU, він не підтримує версію 3.3. Спробуйте версію уроків для OpenGL 2.1.n"
);
glfwTerminate();
return
-1;
>
glfwMakeContextCurrent(window);
// Ініціалізуємо GLEW
glewExperimental=true;
// Прапор необхідний у Core-режимі OpenGL
if
(glewInit()
!=
GLEW_OK)
fprintf(stderr,
"Неможливо ініціалізувати GLEWn");
return
-1;
>
Скомпілюйте та запустіть цей вихідний код. Якщо все зроблено правильно, то у вас відкриється і відразу закриється вікно з контекстом OpenGL і це правильно, тому що ми не вказали, що хочемо чекати до тих пір, поки користувач не натисне клавішу Escape.Саме час зробити це:
// Увімкнемо режим відстеження натискання клавіш для перевірки нижче
glfwSetInputMode(window,
GLFW_STICKY_KEYS,
GL_TRUE);
do
// Поки що нічого не виводимо. Це буде на уроці 2.
// Скидаємо буфери
glfwSwapBuffers(window);
glfwPollEvents();
>
// Перевіряємо натискання клавіші Escape або закриття вікна
while(
glfwGetKey(window,
GLFW_KEY_ESCAPE
)
!=
GLFW_PRESS
&&
glfwWindowShouldClose(window)
==
0
);
І це завершує наш перший урок! У другому уроці ми дізнаємося як виводити найпростіший трикутник. Побачимося :)