Overview

開放圖形庫(Open Graphics Library, OpenGL)是一種用於彩色呈現 3D、3D 向量圖形的跨語言、跨平台的 API。截至當下最新的版本為 2017.07.31 發布的 OpenGL 4.6,逐漸有應用程式移除 OpenGL,而改為使用 Vulkan。Vulkan 曾被稱為下一代的 OpenGL。

OpenGL Rendering Pipeling

OpenGL Rendering Pipeline

OpenGL Rendering Pipeline

Rendering Pipeline 代表一系列畫出圖形的過程,如上圖。透過在每個步驟套用不同的參數,最後繪出圖片,代表 OpenGL 的 Rendering Pipeline 中有大量的參數來設定每個步驟。

  1. Vertex Data(頂點資料):假設要將一個 3D 影像繪製到 2D 平面(螢幕)上,則需要先有 3D 影像的各個頂點資料,才能根據當前的攝影機位置(螢幕視角)繪製出結果,因此需要先有 Vertex Data。
  2. Vertex Pipeline:頂點資料的轉換。
  3. Fragment Pipeline:投影至顯示裝置(螢幕)的轉換。
  4. Frame Buffer:輸出

Untitled

由於 3D 模型原則上可以透過無數的三角面所構成,所以只要會畫三角面,就可以畫出所有種類的東西。當然要用四角面也可以。

在電腦圖學中 Rendering 包含著 Geometry(幾何) 與 Rasterization(光柵化),在 OpenGL 中就是對應到 Vertex Pipeline 與 Fragment Pipeline。


Untitled