很久以前一直想學習OpenGL 3D開發,但總是被OpenGL裏面晦澀難懂的概念,繁瑣的配置,以及自己沒有時間機會等原因給擱置了。現在好了,自己選了一門圖形3D開發的課程,於公於私都應該好好學習3D圖形開發了。
話不多說,想要在Mac上學習OpenGL開發,首先就要配置好OpenGL的開發環境,個人覺得在Mac上配置OpenGL開發環境很容易,因爲有命令行,只需要兩個命令就可以安裝OpenGL到Mac上了。
安裝OpenGL開發環境之前,需要先安裝Homebrew,在brew.sh網頁上就有安裝Homebrew的命令,
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝好Homebrew之後就可以使用brew命令安裝OpenGL開發環境了,也就兩個命令 。
brew install glfw3
brew install glew
如上圖,我的OpenGL開發環境已經安裝好了。
現在打開Xcode,創建一個C++項目,在Build Settings裏面找到Search Paths,Search Paths裏面有Header Search Paths選項,雙擊右邊的空的選項,添加/usr/local/include目錄,主要這裏的目錄不能設置爲recursive,如果設置爲recursive在我的Xcode編譯會出現很多未知的錯誤,這些錯誤都來源於include <iostream>這行代表C++類庫的代碼。
配置到這裏,如果你的代碼中沒有使用include <glad/glad.h>這行代碼,可以忽略這一步,如果有使用,那就要配置glad在你的Mac上了,這裏先打開glad在線服務,設置你的Mac所支持的OpenGL版本,這裏的OpenGL版本是有你的電腦的顯卡決定的,不是你之前用Homebrew下載的版本,在Mac環境下需要在appstore裏面下載OpenGL Extensions Viewer來顯示你的OpenGL版本,我的是4.1版,在profile選項選擇core,在左下角勾選Generate a loader,選好配置之後,點擊網頁右下角的Generate按鈕,就可以下載一個名爲glad.zip的壓縮包,裏面包含了glad.c、glad,h和khrplatform.h。
glad.c文件可以直接加到和main.cpp同一目錄下,至於glad.h和khrplatform.h我把他們放到/usr/local/include/glad和/usr/local/include/KHR目錄下,/usr/local/include下本沒有glad和KHR目錄,我是直接把從glad.zip解壓出得glad和KHR目錄複製粘貼到include目錄下,因爲之前配置Header Search Paths的時候添加了/usr/local/include目錄而且是non-recursive,那麼我們也需要把glad和KHR目錄同樣以non-recursive的形式配置到這裏以及我們要用到的之前通過Homebrew安裝好的GLFW目錄,這樣glad.h就在Mac上配置好了。效果如圖:
接下來,在Building Phases裏面點開Link Binary With Libraries添加OpenGL.framework 如圖:
還有我剛剛通過homebrew安裝的glfw和glew類庫也要添加進去,就在上圖的界面點擊Add Other,然後點擊Add files,按CMD+shift+G跳到/usr/local目錄,找到Cellar目錄下的glew和glfw目錄下lib目錄裏的libGLEW.2.1.0.dylib和libglfw.3.3.dylib。 將他們添加進Link Binary With Libraries選項下如下圖:
這樣在Mac的Xcode下OpenGL的環境配置就完成了,可以開始在Xcode下的C++項目裏寫OpenGL 代碼了。