雖然沒想到這麼快就開啓了OpenGL大坑,可是DirectX學得差很少了,基本內容都有過一遍,是時候二者相互對照着學了,這樣本身對圖形學的知識會更加精進一步,等後面大師級別就會學OSG和圖形學基本原理,看看論文什麼的程序員
OpenGL官網編程
OpenGL(Open Graphics Library,開放式圖形庫)是用於渲染2D 3D場景的跨語言跨平臺的應用編程接口(API),這個接口由350個不一樣的函數調用組成windows
因爲不一樣操做系統的差別,OpenGL上下文(相似WinSDK和MFC的關係)的建立過程和IO處理至關複雜,因此freeglut(代替再也不維護的GLUT) GLFW是專門用來建立OpenGL窗口框架
先學freeglut兼容過去的版本,再學GLFW是將來框架的趨勢函數
另外SDL QT也是用OpenGL渲染的動畫
OpenGL ES就是專門爲嵌入式設備設計的spa
WebGL主要應用於網頁上操作系統
OpenGL能夠在三維空間中繪製各類圖元(點 直線 多邊形等),還支持光照和着色 紋理貼圖 混合透明 動畫 特殊效果等設計
OpenGL並不包含任何窗口管理 用戶交互 文件I/O等接口
FreeGlut提供的函數不多,以glut開頭主要和窗口有關
#Include <freeglut.h>
真正用OpenGL渲染的函數在SDK裏面的gl.h之中,由於微軟曾經也是OpenGL的參與者之一,VC編譯器只支持OpenGL 1.1
OpenGL庫老是不斷髮生變換,製造圖形硬件的各個廠商均可能會增長一些新特性,因爲這些新特性太新,可能都沒有添加到gl.h中,爲了使程序員可以使用這些新的OpenGL擴展,能夠添加一個 glext.h 的頭文件(包含了全部最新版本和擴展函數以及標記)
#include "glext.h"
固然目前我本身還沒碰到須要用這個新特性,初學者能夠先不加
OpenGL擴展支持庫:
調用GLX所提供的函數:#include <X11/Xlib.h>
#include <GL/glx.h>
調用WGL所提供的函數:#include <windows.h>
1992年 OpenGL第一個版本
2004年 OpenGL第二個版本