OpenGL本身並不是一個API,僅僅是一個規範,由Khronos組織制定並維護。OpenGL嚴格規定了每個函式該如何執行,以及它們該如何返回。至於內部具體每個函式是如何實現的,將由OpenGL庫的開發者自行決定。因為OpenGL規範並沒有規定實現的細節,具體的OpenGL庫允許使用不同的實現,只要其功能和結果與規範相匹配。早期的OpenGL使用立即渲染模式(也就是固定渲染管線),這個模式下繪製圖形 很方便。OpenGL的大多數功能都被庫隱藏起來,開發者很少能控制OpenGL如何進行計算。而開發者希望更多的靈活性。隨著時間推移,規範越來越靈 活,開發者也能更多的控制繪圖細節。立即渲染模式確實容易使用和理解,但是效率太低。因此從OpenGL3.2開始,規範書開始廢棄立即渲染模式,推出核 心模式,這個模式完全移除了舊的特性。在我們畫出出色的效果之前,首先要做的就是建立一個OpenGL上下文(Context)和一個用於顯示的視窗。然而,這些操作在每個系統上都是不一樣 的,OpenGL有目的的抽象(Abstract)這些操作。這意味著我們不得不自己處理建立視窗,定義OpenGL上下文以及處理使用者輸入。幸運的是,有一些庫已經提供了我們所需的功能,其中一部分是特別針對OpenGL的。這些庫節省了我們書寫平臺相關程式碼的時間,提供給我們一個視窗和上下文用來渲染。最流行的幾個庫有GLUT,SDL,SFML和GLFW。GLFW是一個專門針對OpenGL的C語言庫,它提供了一些渲染物
OpenGL本身並不是一個API,僅僅是一個規範,由Khronos組織制定並維護。OpenGL嚴格規定了每個函式該如何執行,以及它們該如何返回。至於內部具體每個函式是如何實現的,將由OpenGL庫的開發者自行決定。因為OpenGL規範並沒有規定實現的細節,具體的OpenGL庫允許使用不同的實現,只要其功能和結果與規範相匹配。早期的OpenGL使用立即渲染模式(也就是固定渲染管線),這個模式下繪製圖形 很方便。OpenGL的大多數功能都被庫隱藏起來,開發者很少能控制OpenGL如何進行計算。而開發者希望更多的靈活性。隨著時間推移,規範越來越靈 活,開發者也能更多的控制繪圖細節。立即渲染模式確實容易使用和理解,但是效率太低。因此從OpenGL3.2開始,規範書開始廢棄立即渲染模式,推出核 心模式,這個模式完全移除了舊的特性。在我們畫出出色的效果之前,首先要做的就是建立一個OpenGL上下文(Context)和一個用於顯示的視窗。然而,這些操作在每個系統上都是不一樣 的,OpenGL有目的的抽象(Abstract)這些操作。這意味著我們不得不自己處理建立視窗,定義OpenGL上下文以及處理使用者輸入。幸運的是,有一些庫已經提供了我們所需的功能,其中一部分是特別針對OpenGL的。這些庫節省了我們書寫平臺相關程式碼的時間,提供給我們一個視窗和上下文用來渲染。最流行的幾個庫有GLUT,SDL,SFML和GLFW。GLFW是一個專門針對OpenGL的C語言庫,它提供了一些渲染物