Базовий приклад opengl 3 для osx

Базовий приклад OpenGL 3 для OSX

Базовий приклад 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 бібліотек і фреймворків.

Базовий приклад opengl 3 для osx

  • Підключаємо заголовочнікі в такому порядку:

Дефайн GLFW_INCLUDE_GLCOREARB допомагає уникнути проблем в підвантаження нових функцій.

  • В розділ "Library Search Paths" додаємо директорію "/ usr / local / lib".
  • Використовує бібліотеки в такому порядку:
    • Ініціалізіруем glfw, створюємо вікно і контекст.
    • Ініціалізіруем glew.
    • Створюємо будь-які класи OGLplus.

Готовий приклад, які забарвлює сферу, ви знайдете на github.com/UnickSoft. У цьому прикладі я використовував об'єкт сфери з OGLplus і два простих шейдера, які емулюють освітлення.

Базовий приклад opengl 3 для osx

Схожі статті