Home People Research Blog Courses Links Search Download
NCHC

Blog

Blog 最新文章

  1. 提供新版 Edge 的 HoloLens 2 Insider Preview
    2021/01/20 08:55
  2. Facebook Oculus Quest 2 開箱文
    2021/01/13 14:19
  3. GitLab 手動執行 pipeline 的預輸入變數
    2021/01/04 11:14

Blog 最新回應

  1. 謝謝你提供的資訊...
    2021/01/17 17:40
  2. MSVC 也是有在進步的 XD...
    2020/12/24 15:55
  3. “如果不想另外定義一個 struct 的........
    2020/12/24 15:49

Keyword 關鍵字

Oculus HTC Vive iFlyover OpenCL 資訊地圖 Pandas C++20 Valve Index OpenGL C++14 git VR C++17 開放資料 3d print HoloLens 2 GitLab 資料視覺化 Qt PHP OpenVR 開放資料 WebGL VR Python Java Oculus Rift S Python OpenCV Docker javascript HTC Vive Focus Kinect xml C++ Vulkan MR Pandas NiTE2 HTC Vive Pro CubeX ASUS Xtion Oculus Quest 2 OpenNI2 OpenNI C++14 OpenMP OpenXR Boost CUDA Windows MR 3D立體 C++11 Docker svn

類別:技術相關 » 技術研究
文章發表|我要回應|RSS訂閱

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

這個章節主要是介紹如何準備好一個可以撰寫 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使用者特別篇:

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 叫出來使用。

張貼者:柏穎於2010/03/08 15:43 下午有0則回應,瀏覽次數:9,109次

-- TOP --

我要回應
* 身份  訪客 (暱稱:)
 本篇文章作者 (帳號:密碼:)
* 內容      
很高興 悲傷 震驚 疑惑 大笑 發瘋 傷心
* 留言密碼 (請輸入下方圖片中去除前、後位數的數字,共五碼。)
說明 1. * 表示必填欄位。
2. 不支援HTML Tag。
   

-- TOP --

© Visualization and Interactive Media Laboratory of NCHC, 2007 - 2021, All Rights Reserved. Contact E-mail