Базовий приклад OpenGL 3 для OSX
Отже, ви прочитали або читаєте якусь книгу по новому OpenGL (3+ версії), і тепер вам хочеться спробувати створити простенький додаток, щоб відпрацювати ті чи інші техніки. Якщо ви хочете створити додаток з нуля, то для того, щоб вивести хоча б трикутник необхідно зробити багато підготовчої роботи: створення і ініціалізація контексту, подгрузка OpenGL функції версії 3+, створення VBO, компіляція шейдеров і т.д. Всі ці речі корисно знати і спробувати хоча б раз в житті, але часто краще використовувати готові бібліотеки для цих цілей.
Використання бібліотека GLFW
Бібліотека GLFW допоможе вам створити вікно, форматувати контекст і запустити цикл обробки повідомлень. Для тих же цілей можна використовувати і GLUT. GLFW підтримує Windows, OS X і багато Unix-подібні ОС, що використовують X Window System (Linux і FreeBSD).
Найпростішим способом встановити GLFW швидше за все є використання утиліти brew. Для цього необхідно набрати в командному рядку:
Інший спосіб - це компіляція з початкових кодів. На даний момент потрібно використовувати cmake. Думаю, що інструкція на офіційному сайті вам допоможе.
Використовувати бібліотеку теж не складно: инициализируем, створюємо вікно, запускаємо цикл обробки повідомлень:
Використання бібліотеки GLEW
Установку GLEW можна також зробити за допомогою brew.
Використовувати GLEW теж досить просто, необхідно ініціалізувати його після створення контексту в потоці:
Виходячи з мого досвіду, необхідно встановити прапор glewExperimental і викликати glGetError після ініціалізації. В іншому випадку, OGLplug, який ми розглянемо нижче, буде повідомляти про OpenGL помилку.
Використання бібліотеки OGLplus
OGLplus - це набір бібліотек, які реалізують об'єктно-орієнтована фасад для роботи з OpenGL 3+, OpenAL, EGL. Для нас цікаві тільки класи, пов'язані з OpenGL. Вони допоможуть нам використовувати шейдери, буфери і всі інші OpenGL об'єкти. Крім того, бібліотека включає багато корисних допоміжних класів, наприклад, геометричні об'єкти, матриці.
Збирати OGLplus необхідно також як і багато бібліотек. Інструкцію ви знайдете тут. Від себе можу додати, що я використовував параметр --use-glew для конфігурації.
OGLplus - це набір класів. Коли ви його встановите, він готовий до використання. У прикладі ви знайдете, як використовувати VBO, шейдери, контекст та інші класи. Варто тільки згадати, що створення класів OGLplus має відбуватися після створення контексту і ініціалізації GLEW.
Налаштування XCode проекту
Дана інструкція була написана для XCode версії 7.2.1.
- Додаємо в "Header Search Paths" директорію / usr / local / include.
- В розділ Link Binary With Libraries додаємо 6 бібліотек і фреймворків.
- Підключаємо заголовочнікі в такому порядку:
Дефайн GLFW_INCLUDE_GLCOREARB допомагає уникнути проблем в підвантаження нових функцій.
- В розділ "Library Search Paths" додаємо директорію "/ usr / local / lib".
- Використовує бібліотеки в такому порядку:
- Ініціалізіруем glfw, створюємо вікно і контекст.
- Ініціалізіруем glew.
- Створюємо будь-які класи OGLplus.
Готовий приклад, які забарвлює сферу, ви знайдете на github.com/UnickSoft. У цьому прикладі я використовував об'єкт сфери з OGLplus і два простих шейдера, які емулюють освітлення.