日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mac配置OpenGL环境

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mac配置OpenGL环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

入門學習OpenGL,網上查詢OpenGL的配置環境相關,配置的樣式多種多樣。

但總的來說,無非如下幾個步驟:

  • 下載gltools、glew、glfw、glut、 glad、glm等庫文件
  • Xcode中配置Build Settings內的Search Header Paths和Search Libary Paths
  • Xcode中配置Build Phases內的Link Binary With Libraries

在Mac中,openGL、glut的包,已經自帶,無需關注。

入門學習使用: Learn OpenGL

環境:Mac: 10.14.6 Xcode: 11.3.1

語言: C/C++

個人Demo:OpenGLDemo

brew安裝cmake、glfw、glew

brew是Mac OS平臺下的軟件包管理工具, 通過終端命令可以實現包的安裝,卸載,更新等。
打開終端,輸入命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝成功后會提示你輸入密碼, 安裝成功后提示: “Installation successful”
常用的命令有:

brew search // 搜索軟件包 brew install // 安裝軟件包 brew uninstall // 卸載軟件包 brew info // 查詢軟件包信息 brew update // 更新 brew deps // 顯示包依賴 brew list // 查詢已經安裝的軟件包

倘若因為網絡不穩定,導致安裝失敗,需要對它進行卸載重裝,其命令為:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

成功安裝brew后, 可直接運行如下命令:

// 方式1 brew install cmake glfw glew// 方式2 brew install cmake brew install glfw brew install glew

glfw和glew安裝成功后,路徑都在: /usr/local/Cellar 中
glfw的官網:GLFW
glew的官網:GLEW

glTools下載

它是《OpenGL 超級寶典》的作者對OpenGL接口的一些封裝,在Learn OpenGL上不會用到。下載

下載并解壓到任意目錄下, 通過終端命令進入該目錄:

cd build cmake .. make sudo make install

如上命令主要做了兩件事:

  • 對文件進行編譯生成庫文件: libgltools.dylib、libgltools.a
  • 將include文件安裝到**/usr/local/include**中
  • 將庫文件安裝到**/usr/local/lib**中

GLM下載

OpenGL Mathematics為OpenGL編寫的第三方數學算法庫

不依賴其他包, 不需要編譯,下載后直接將頭文件放入指定的目錄即可進行引用。

下載地址: glm

使用GLM時,類似示例:

#include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/type_ptr.hpp>void DebugGLM() {glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);// 譯注:下面就是矩陣初始化的一個例子,如果使用的是0.9.9及以上版本// 初始化編寫為:glm::mat4 trans = glm::mat4(1.0f);// 否則初始化編寫:glm::mat4 trans;// 如果方式不一致,就會出現結果是很大數字的顯示,切記glm::mat4 trans = glm::mat4(1.0f);trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));vec = trans * vec;std::cout << vec.x << vec.y << vec.z << std::endl; // 210表示正確 }

glad下載

參考: LearnOpenGL 配置GLAD

它是一個開源的庫, 需要打開glad的在線服務進行配置,生成后然后下載zip文件即可。在線服務

  • Language選擇C/C++
  • Specification選擇OpenGL
  • gl選擇版本3.3即可
  • 勾選Generate a loader
  • 確認無誤后,勾選GENERATE

生成成功以后,如下圖:

點擊標記部分進行下載即可。

環境配置

  • 打開Xcode, 選擇Create a new Xcode Project -> mac OS -> Command Line Tool
  • 創建成功后,點擊右上角Xcode, 點擊Preference, 選擇Locations, 然后選擇Custom Paths
  • 點擊加號添加配置相關:

    Name Display Name Path glew_header glew_header /usr/local/Cellar/glew/2.1.0/includeglew_lib glew_lib glew_lib /usr/local/Cellar/glew/2.1.0/lib glfw_header glfw_header /usr/local/Cellar/glfw/3.2.1/include glfw_lib glfw_lib /usr/local/Cellar/glfw/3.2.1/lib gltool_header gltool_header /usr/local/include gltool_lib gltool_lib /usr/local/lib

    這些配置,主要用于項目Build Settings下的Header Search Paths和Library Search Paths的配置。比如:

    • Header Search Paths, 配置glew, glfw相關include,可以使用:$(glew_header) $(glfw_header)
    • Library Search Paths, 配置glew, glfw相關lib, 可以使用: $(glew_lib) $(glfw_lib)
  • 配置項目Build Phases下的Link Binary With Libraries相關, 這些配置添加后,會添加到framework中。

    mac系統的自帶有:GLUT.framework、OpenGL.framwork相關,直接搜索添加就可以

    其他的比如glew、glfw相關, 可以點擊Add Other…,選擇add Files…

    通過快捷鍵Command+Shift+G或者前往文件夾進入到/usr/local/目錄,選擇對應包的lib目錄下的.dylib文件。

  • 至此基本的環境配置算是配置結束, 在main.cpp粘貼如下代碼:

  • #include <iostream> #include <GL/glew.h> #include <GLFW/glfw3.h>void Render(void) {glClearColor(0.0f, 0.0f, 0.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLES);{glColor3f(1.0,0.0,0.0);glVertex2f(0, .5);glColor3f(0.0,1.0,0.0);glVertex2f(-.5,-.5);glColor3f(0.0, 0.0, 1.0);glVertex2f(.5, -.5);}glEnd(); }int main(int argc, const char * argv[]) {GLFWwindow* win;if(!glfwInit()) {return -1;}win = glfwCreateWindow(480, 320, "Triganle", NULL, NULL);if(!win) {glfwTerminate();exit(EXIT_FAILURE);}if(!glewInit()) {return -1;}glfwMakeContextCurrent(win);while(!glfwWindowShouldClose(win)){Render();glfwSwapBuffers(win);glfwPollEvents();}glfwTerminate();exit(EXIT_SUCCESS);return 0; }

    效果圖,如下:


    Learn OpenGL GitHub環境配置

    學習OpenGL的過程中,參考資料是:

    • LearnOpenGL 教程
    • LearnOpenGL Code

    關于Code的生成步驟:

    • 下載Code
    • 打開終端命令,進入到目錄中,運行命令:
    brew install cmake assimp glm glfw // 通過brew安裝cmake, assimp, glm, glfw等庫文件 mkdir build // 創建build文件夾 cd build // 進入build目錄 cmake -G "Xcode" .. // cmake生成Xcode項目工程文件
    • 如果Xcode生成項目工程文件的時候報錯,類似如下:
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance--[[ 修改方式: 1. 執行命令,修改Xcode路徑 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ 2. 執行命令 xcodebuild -showsdks 3. 執行命令 xcrun --sdk iphoneos --show-sdk-path 4. 顯示類似結果,表示正確 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk 5. 重新執行命令: cmake -G "Xcode" .. ]]

    官方示例提供了教程當中的所有示例demo相關, 可用于我們學習,參考。

    建議

    在學習OpenGL的過程,我們會在Xcode項目創建多個示例程序,用于學習查看各種各樣的效果。

    步驟是: 右上角選擇File -> New -> Target…后, 選擇Command Line Tool新建示例。

    在每個CLT示例中,需要重復做如下幾件事:

    • 需要在Build Settings中配置Header Search Paths和Library Search Paths所需要的文件相關
    • 需要在Build Phases中配置Link Binary With Libraries所需要的庫文件相關

    這樣的配置,固然是可以的,但是會有幾個問題出現:

    • OpenGL的某些實現需要引用一些頭文件相關,他們并不是在usr/local中放置,比如:glad、glm等
    • 配置庫文件,需要記住一些常用庫的路徑

    為避免這些問題,可以參考著官方示例的目錄結構:

    • 將編寫的Command Line Tool的示例文件放置到src對應的章節目錄中
    • 將第三方的.a、.dylib從usr/local中拷貝放到libs目錄文件下
    • 將第三方的.h、.cpp文件分別放置到includes和src目錄中
    • 將資源,shader相關放置到Resources目錄中

    優點:

    • 解決引用庫文件進行繁瑣的操作的步驟
    // Header Search Paths $(PROJECT_DIR)/includes// Library Search Paths $(PROJECT_DIR)/libs

    注意:
    如果項目運行報錯,一般是沒有獲取到對應的庫文件
    記得使用命令: brew install glew glfw, 下載成功后,就對應的**.dylib和.a**文件放置到libs目錄內

    本人新手,能力有限,如果文章對您引起了誤導,請及時告知,避免影響更多的人

    總結

    以上是生活随笔為你收集整理的Mac配置OpenGL环境的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。