Windows 下的OpenGL 開發環境配置(GLFW+GLAD) | glad opengl
引言最近在讀Unity4.3的源碼,研究到Unity集成的物理引擎PhysX和Box2D部分,接下來還要研究渲染引擎方面的東西,想着直接倒騰一下,自己集成一遍寫個小demo。當然這都依賴於OpenGL這個東西來渲染(因爲物理引擎本身都是一些計算,沒有可視化的東西,需要藉助渲染層將其可視化),這裏先搭一個可以在Windows下編寫OpenGL程序的架子,然後再往裏面塞物理引擎和Shader相關的東西。 OpenGL基礎概念OpenGL函數庫相關的API包括:核心庫(gl),實用庫(glu),輔助庫(aux)、實用工具庫(glut),窗口庫(glx、agl、wgl)和擴展函數庫等。gl是核心,g...
引言最近在讀 Unity 4.3 的源碼,研究到 Unity 集成的物理引擎 PhysX 和 Box2D 部分,接下來還要研究渲染引擎方面的東西,想着直接倒騰一下,自己集成一遍寫個小 demo 。當然這都依賴於 OpenGL 這個東西來渲染(因爲物理引擎本身都是一些計算,沒有可視化的東西,需要藉助渲染層將其可視化),這裏先搭一個可以在 Windows 下編寫 OpenGL 程序的架子,然後再往裏面塞物理引擎和 Shader 相關的東西。
OpenGL 基礎概念
OpenGL 函數庫相關的 API 包括:核心庫( gl ),實用庫( glu ),輔助庫( aux )、實用工具庫( glut ),窗口庫( glx 、 agl 、 wgl )和擴展函數庫等。gl 是核心,glu 是對 gl 的部分封裝。glx 、 agl 、wgl 是針對不同窗口系統的函數。擴展函數庫是硬件廠商爲實現硬件更新利用OpenGL的擴展機制開發的函數。
gult (OpenGL Utility Toolkit)
是 OpenGL 跨平臺的實用工具庫,主要用於做窗口界面。大部分函數以 glut 開頭,其 API 包括:窗口操作函數,窗口初始化、窗口大小、窗口位置等函數;回調函數:響應刷新消息、鍵盤消息、鼠標消息、定時器函數等;創建複雜的三維物體;菜單函數;程序運行函數。
對應的開源實現是 freegult
glew
glut 或 freeglut 主要是 1.0 的基本函數功能,glew 是使用OpenGL 2.0 之後接口的一個擴展庫,能自動識別當前平臺支持的全部 OpenGL 高級擴展函數。
在程序中只要引入 glew.h 頭文件,便可使用 gl, glu, glext, wgl 和 glx 的全部函數。
glfw
是一個跨平臺的 OpenGL 應用框架,支持 OpenGL 和 OpenGL ES ,支持窗口創建、讀取輸入和處理事件等功能。特點:輕量級、開源和跨平臺。由於 glut 已經太老了,現在基本都是用 glfw 來替代 glut 。
glad
glad 可以說是 glew 的升級版 。
...