這個章節主要是介紹如何準備好一個可以撰寫 OpenGL 程式的環境,因為 OpenGL 只是一套繪圖的 API,所以需要其他的 API 輔助跟 OS 溝通,至少要能取得一塊畫面,讓 OpenGL API 能夠在畫面上繪圖。而一般 OpenGL 教學上常用的輔助 API 就是 GLUT。因為 GLUT 提供了一些基本的功能如鍵盤滑鼠的支援,並且在 Windows、Linux 環境都能使用。不過若需要支援較多的滑鼠搖桿功能,或是音樂或影片的播放,網路的連線,在更多平台上使用等其他功能,就必須使用另外的 API 來取代 GLUT,而這些 API 有蠻多種選擇,每一種都有其不同的功能跟特色。 以下就先用OS 原生與否來分類這些 API : OS 原生 API | 作業系統原生支援的API,故只有單一平台 | WGL | WGL支援 Windows 下繪圖視窗的存取,其他功能需要使用 Win32 API。 | GLX | GLX支援 XWindows 下繪圖視窗的存取,其他功能需要使用 Linux API。 | AGL | AGL支援 MacOS 下繪圖視窗的存取,其他功能需要使用 MAC API。 |
跨平台API | 跨平台API通常是將 OS 原生 API 打包,提供統一通用的介面 | glut | 支援 Windows / Linux / BSD平台 支援基本的鍵盤滑鼠與搖桿功能。 作者已停止開發。
| FreeGLUT | 支援 Windows / Linux / BSD平台 支援基本的鍵盤滑鼠與搖桿功能。 因為 glut license 因素,所以由另一群人以開放原始碼的方式重新撰寫 glut 並且提供一些新功能。
| SDL | 支援 Windows / Linux / Mac / BSD等平台(SDL 1.3 預計支援NDS / IPhone / iPod Touch) 輸入裝置支援鍵盤滑鼠與搖桿功能。 支援影片播放,聲音播放,網路功能。
| QT | 支援 Linux / Windows / Mac OSX / WinCE / Symbian / Maemo 輸入裝置支援鍵盤滑鼠與搖桿功能。 支援影片播放,聲音播放,網路功能。
| SFML | C based, 支援 Linux / Windows / Mac OSX 支援至5鍵滑鼠,7軸32鍵搖桿 支援聲音播放,網路功能。
| GLFW | 支援 Linux / Windows / Mac OSX / BSD 支援基本的鍵盤滑鼠與搖桿功能。
| Fast Light Toolkit (FLTK) | 支援 Windows / Linux / BSD / MAC OSX平台 支援基本的鍵盤滑鼠與搖桿功能。 提供UI Widget的支援
| |
在選定要使用的API之後,設定開發環境時要作的事情主要就是設定的 Library 的 LIB 路徑,Header 路徑等,就可以開始寫程式。 而之後的程式範例,大致上會以SDL 1.2 或是 glut 為主。 Windows使用者特別篇: GLEW 與 GLEE 由於微軟只有在初期參與 OpenGL 的制定,後來推出了自己的3D API: Direct3D, 所以在 Windows 預設環境下只能使用到 OpenGL 1.1的API。 但是 OpenGL API 本身有提供擴充 Function 的介面。 所以只要3D顯示卡的驅動程式支援新版的 OpenGL, 便可以透過 OpenGL 擴充的介面, 將最新版的 OpenGL Function 呼叫出來。 而這個動作也已經有 Library 幫我們做好了, 常見的便是 GLEW 與 GLEE 這兩套 Library, 只要使用其中一套,就可以在 Windows 下使用比 OpenGL 1.1 新的功能。 另外前述的跨平台 API 也有部分作了類似 GLEW 的功能, 但是如果沒有支援到最新版的 OpenGL (例如 SDL1.3 尚未支援至 OpenGL 3.2 ), 仍然可以結合使用 GLEW 或是 GLEE 把驅動程式所支援的最新版 OpenGL API 叫出來使用。
|