OpenGL開發過程中必備的專業名詞解析

  • 狀態機

是理論上的一種機器,狀態機描述了一個對象在其生命中所經歷的各種狀態狀態機的轉變,發生轉變的動因、條件及抓岸邊中所執行的活動,它具有以下特點:

  • 記憶功能,能記住其當前狀態
  • 可以接受輸入,根據輸入內容和原先狀態,修改當前狀態,並且可以有對應的輸出
  • 當進入特殊狀態(停機狀態)的時候,就怒再接收收入,停止工作。
  • 上下文(context)`
  • 上下文就是個非常龐大的狀態機,保存了OpenGL的各種狀態,這是OpenGL指令執行的基礎
  • OpenGL函數是面向過程的函數,本質是對上下文這個狀態機的某個狀態或者對象進行操作,通過對OpenGL指令的封裝,是可以將Openg的相關調用封裝成爲一個面向對象的圖形API的
  • 由於OpenGL上下文是一個巨⼤大的狀態機,切換上下⽂往往會產⽣生較大的開 銷,但是不同的繪製模塊,可能需要使⽤完全獨立的狀態管理理。因此,可以在應用程序中分別創建多個不同的上下文,在不不同線程中使⽤不同的上下文,上下文之間共享紋理、緩衝區等資源。這樣⽅方案,會⽐比反覆切換 上下文,或者⼤量修改渲染狀態,更加合理高效的.
  • 渲染(Rendering)

將圖形/圖像數據轉換成2D空間圖像操作叫做渲染

  • 頂點數組

頂點是繪製圖形的頂點位置數據,這個數據可以存儲在數組中,就是頂點數組。頂點數組是存儲在內存中的。
相對於頂點數組,性能更高的做法是提前分配一塊顯存,將頂點數據預先傳入到顯存中,這部分的顯存被稱爲頂點緩衝區

  • 管線

在OpenGL下渲染圖形,會經過一個一個節點,這樣的操作就可以理解爲管線。就相當於流水線。管線是按照固定順序執行的,順序不可以打破,嚴格按照順序
固定管線:系統封裝的內置的固定着色器程序,只需要傳入參數,就能快速的完成渲染

  • 着色器(shader)

在函數繪製之前,需要指定一個由shader編譯成的着色器程序,常見的着色器有

  • 頂點着色器(VertexShader)
    用於計算頂點屬性的程序,一般用來處理圖形頂點變換(旋轉、平移、投影等),逐頂點運 算,並行執行
  • 片元着色器(FragmentShader,片段着色器或者像素着色器不同叫法而已)
    用於處理圖形的每個像素點的程序,包括顏色計算和填充,逐像素運算,是並行的
  • 幾何着色器
  • 曲面細分着色器
  • GLSL(OpenGL Shading Language)

OpenGL中着色編程的語言,他們是在圖形卡的GPU (Graphic Processor Unit圖形處理理單元)上執⾏行。程序員可使用這個自定義着色器,⽐如:視圖轉換、投 影轉換等。

  • 光柵化 (Rasterization)
  • 把物體的數學描述和相關的顏色信息轉換爲屏幕上用於對應位置的像素及用於填充像素的顏色的過程。
  • 主要目的是將幾何渲染之後的圖元信息轉化爲一系列的像素,以便後續在屏幕上顯示。兩個過程,第一部分:決定窗口座標中的哪些整型柵格區域被基本圖元佔用;第二部分:分配一個顏色值和一個深度值到各個區域。光柵化過程產生的是片元
  • 紋理 (Texture)

可以理解爲圖片,在渲染圖形時候在其編碼填充圖片,使場景更爲逼真

  • 混合 (Blending)

像素沒有被剔除。像素會和幀緩衝區顏色進行混合。可以理解爲兩個顏色重疊顯示出來的混合顏色

  • 變換矩陣(Transformation)

圖形想要發生平移、縮放、旋轉等變換,就需要使用變換矩陣

  • 投影矩陣

將3D座標轉換爲二維屏幕座標時使用。投影方式有正投影和透視投影。正投影不會改變大小,透視投影會使遠處的物體比近處投影的要小。

  • 渲染上屏/交換緩衝區(SwapBuffer)
  • 渲染緩衝區⼀般映射的是系統的資源⽐如窗口。如果將圖像直接渲染到窗口對應的渲染緩衝區,則可以將圖像顯示到屏幕上。
  • 但是,值得注意的是,如果每個窗⼝只有一個緩衝區,那麼在繪製過程中屏幕進行了刷新,窗口可能顯示不出完整的圖像
  • 爲了解決這個問題,常規的OpenGL程序至少都會有兩個緩衝區。顯示在屏幕上的稱爲屏幕緩衝區,沒有 顯示的稱爲離屏緩衝區。在⼀個緩衝區渲染完成之後,通過將屏幕緩衝區和離屏緩衝區交換,實現圖像在屏幕上的顯示
  • 垂直同步: 由於顯示器的刷新⼀般是逐行進行的,因此爲了防止交換緩衝區的時候屏幕上下區域的圖像分屬於兩個不同的幀,因此交換一般會等待顯示器刷新完成的信號,在顯示器兩次刷新的間隔中進⾏行交換,這個信號就被稱爲垂直同步信號,這個技術被稱爲垂直同步
  • 三緩衝區技術:使⽤了雙緩衝區和垂直同步技術之後,由於總是要等待緩衝區交換之後再進⾏下⼀幀的渲染,使得幀率⽆法完全達到硬件允許的最⾼⽔平。爲了解決這個問題,引⼊了三緩衝區技術,在等待垂直同步時,來回交替渲染兩個離屏的緩衝區,而垂直同步發⽣生時,屏幕緩衝區和最近渲染完成的離屏緩衝區交換,實現充分利⽤硬件性能的⽬的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章