OpenGL 3.x 教學: 第0章: 準備OpenGL的開發環境(上)

| | 0 Comments| 15:43
Categories:

這個章節主要是介紹如何準備好一個可以撰寫 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
  1. 支援 Windows / Linux / BSD平台
  2. 支援基本的鍵盤滑鼠與搖桿功能。
  3. 作者已停止開發。
FreeGLUT
  1. 支援 Windows / Linux / BSD平台
  2. 支援基本的鍵盤滑鼠與搖桿功能。
  3. 因為 glut license 因素,所以由另一群人以開放原始碼的方式重新撰寫 glut 並且提供一些新功能。
SDL
  1. 支援 Windows / Linux / Mac / BSD等平台(SDL 1.3 預計支援NDS / IPhone / iPod Touch)
  2. 輸入裝置支援鍵盤滑鼠與搖桿功能。
  3. 支援影片播放,聲音播放,網路功能。
QT
  1. 支援 Linux / Windows / Mac OSX / WinCE / Symbian / Maemo
  2. 輸入裝置支援鍵盤滑鼠與搖桿功能。
  3. 支援影片播放,聲音播放,網路功能。
  4. 提供UI Widget的支援
SFML
  1. C based, 支援 Linux / Windows / Mac OSX
  2. 支援至5鍵滑鼠,7軸32鍵搖桿
  3. 支援聲音播放,網路功能。
GLFW
  1. 支援 Linux / Windows / Mac OSX / BSD
  2. 支援基本的鍵盤滑鼠與搖桿功能。
Fast Light Toolkit (FLTK)
  1. 支援 Windows / Linux / BSD / MAC OSX平台
  2. 支援基本的鍵盤滑鼠與搖桿功能。
  3. 提供UI Widget的支援

在選定要使用的API之後,設定開發環境時要作的事情主要就是設定的 Library 的 LIB 路徑,Header 路徑等,就可以開始寫程式。

而之後的程式範例,大致上會以SDL 1.2 或是 glut 為主。

Windows使用者特別篇:

GLEWGLEE

由於微軟只有在初期參與 OpenGL 的制定,後來推出了自己的3D API: Direct3D, 所以在 Windows 預設環境下只能使用到 OpenGL 1.1的API。 但是 OpenGL API 本身有提供擴充 Function 的介面。 所以只要3D顯示卡的驅動程式支援新版的 OpenGL, 便可以透過 OpenGL 擴充的介面, 將最新版的 OpenGL Function 呼叫出來。 而這個動作也已經有 Library 幫我們做好了, 常見的便是 GLEWGLEE 這兩套 Library, 只要使用其中一套,就可以在 Windows 下使用比 OpenGL 1.1 新的功能。 另外前述的跨平台 API 也有部分作了類似 GLEW 的功能, 但是如果沒有支援到最新版的 OpenGL (例如 SDL1.3 尚未支援至 OpenGL 3.2 ), 仍然可以結合使用 GLEW 或是 GLEE 把驅動程式所支援的最新版 OpenGL API 叫出來使用。

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *