日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL之常见的专业名词解析

發布時間:2024/5/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL之常见的专业名词解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

狀態機

  • 狀態機可以理解為一臺可以保存狀態,并根據當前狀態進行相應輸出的機器,也可以理解為就是一種存在于理論中的機器;
  • 首先,它有記憶的能力,能夠記住自己當前的狀態。(電腦的存儲器(內存、硬盤等),可以記住電腦自己當前的狀態(當前安裝在電腦中的軟件、保存在電腦中的數據,其實都是二進制的值,都屬于當前的狀態),狀態機就相當于這里的電腦,類似于這樣的“存儲記憶”,因而OpenGL可以記錄自己的狀態(比如:當前所使用的顏色、是否開啟了混合功能等,這些都是要記錄的));
  • 其次,它可以接收輸入,根據用戶輸入的內容和自己的狀態,修改自己的狀態,并且可以得到輸出。(電腦的輸入設備接收輸入(鍵盤輸入、鼠標輸入、文件輸入),根據輸入的內容和自己的狀態(主要指可以運行的程序代碼),修改自己的狀態(修改內存中的值),并且可以得到輸出(將結果顯示到屏幕),OpenGL和電腦類似,也可以接收輸入(當調用OpenGL函數的時候,可以看成OpenGL在接收輸入),根據輸入的內容和自己的狀態,修改自己的狀態,并且可以得到輸出(比如當調用glColor3f,則OpenGL接收到這個輸入后會修改自己的“當前顏色”這個狀態;當調用glRectf,則OpenGL會輸出一個矩形));
  • 最后,當它進入某個特殊的狀態(停機狀態)的時候,它不再接收輸入,停止工作。(類似于電腦關機之后,便不再接收信息,停止工作);

上下文 Context

  • 保存OpenGL中各種狀態的一個龐大狀態機,記錄OpenGL渲染需要的所有信息,它是一個大的結構體,它里面記錄了當前繪制使用的顏色、是否有光照計算以及開啟的光源等非常多的使用OpenGL函數調用設置的狀態和狀態屬性;
  • OpenGL指令執?的基礎,比如保存了一系列的變量用來描述OpenGL此刻需要如何運行,比如拍照時候要開啟濾鏡功能等等;
  • 應用程序中可以創建多個不同的上下文,分別在各自的線程中使用。上下文之間共享紋理,緩沖區等資源,采用這中方案更為高效,因為它避免了反復切換上下文,或者大量修改渲染狀態所造成的較大的開銷;

渲染(Rendering)

  • 在OpenGL中,所有東西都在一個3D的空間里,而屏幕和窗口都是2D的,所以OpenGL需要將3D的坐標轉換成2D的坐標,這就是渲染(包括第一部分將3D坐標轉換成2D坐標;第二部分把2D的坐標轉換成實際的像素);

頂點數組 VertexArray、頂點緩沖區 VertexBuffer

  • 常量頂點屬性對于一個圖元的所有頂點都相同,所以對一個圖元的所有頂點只需指定一個值;
  • 頂點數組指定每個頂點的屬性 ,是保存在應用程序的地址空間 (OpenGL ES 稱為客戶空間) 的緩沖區,常在內存中;
  • 頂點緩沖區(VertexBuffer)用于保存一個或多個圖元的索引,常在緩存中;初始化或者更新 緩沖區對象數據存儲之后,客戶數據存儲不再需要的,靜態的幾何圖形可以釋放客戶數據存儲,減少應用程序消耗的內存;

管線

  • 管線包含一系列處理階段,定點數據和像素數據進入管線進行處理,最后組合到一起寫入幀緩沖區;
  • 渲染的過程就相當于管線,類似于生產流水線;
  • 主要分為固定管線(類似于API,只是參數的不同)和可編程管線(GLSL語法來驅使GPU);

著色器

  • 用來處理頂點相關代碼的程序,主要作用于GPU(一個著色器類似于一個函數或者方法,但函數和方法是作用于CPU);
  • 固定著色器:固定封裝的API代碼段,只是需要的參數不同;
  • 頂點著色器:將頂點坐標由自身坐標系轉換到歸一坐標系,是逐頂點運行的程序,即每個頂點數據都會執行一次,確定其位置;主要用來處理圖形頂點的變換(旋轉、平移、縮放),3D圖形數據投影換算 為2D圖形數據等;
  • 片元著色器:主要用于處理一個個的像素點,逐像素且在GPU并行運算,即每個像素都會執行一次;
  • 自定義著色器:進行自定義編譯的代碼片段;

GLSL

  • GLSL著色語?是?來在OpenGL中著?編程的語?,是在圖形卡的GPU上執?的,代替了固定的渲染管線的?部分,使渲染管線中不同層次具有可編程性;

光柵化

  • 光柵化是將圖元轉化為一組二維片段的過程:當渲染一個圖元時,光柵化(Rasterization)階段通常會造成比原指定頂點更多的片段。它會根據每個片段在圖元上所處相對位置決定這些片段的位置。基于這些位置,它會插值(Interpolate)所有片段著色器的輸入變量;
  • 包含了兩部分的?作:一是決定窗?坐標中的哪些整型柵格區域被基本圖元占?,二是分配一個顏?值和?個深度值到各個區域;
  • 幾何圖元轉化為二維圖像,把物體的數學描述和相關的顏色信息轉換為屏幕上對應位置的像素及填充像素顏色,將模擬信號轉換為離散信號;

紋理(Texture、位圖)

  • 紋理可以理解為是一個2D圖片(甚至也有1D和3D的紋理),它可以用來添加物體的細節;需要將png轉換成位圖,所以紋理又是位圖;
  • 紋理也可以被用來儲存大量的數據,可以發送到著色器上;
  • 將平時的jpg/png圖片轉換成位圖,位圖即為紋理;

混合(Blending)

  • 為了渲染出不同的透明度級別,需要開啟混合;
  • 可以理解為圖層疊加的計算;

變換矩陣 (Transformation)

  • 用于圖形的平移、旋轉、縮放時使用;

投影矩陣 (Projection)

  • 將3D坐標轉換為2D屏幕坐標時使用;

渲染上屏/交換緩沖區 (SwapBuffer)

  • 渲染緩沖區:可以理解為是系統的資源,例如窗口;
  • 渲染上屏:將圖像直接渲染到窗口對應的渲染緩沖區;
  • 顯示在屏幕上的稱為屏幕緩沖區,沒有顯示的稱為離屏緩沖區;在一個緩沖區渲染完成之后,通過將屏幕緩沖區和離屏緩沖區交換,實現圖像在屏幕上顯示;
  • 為防?交換緩沖區的時候屏幕上下區域的圖像分屬于兩個不同的幀,交換一般會等待顯示器刷新完成的信號,在顯示器兩次刷新的間隔中進?交換,這個信號就被稱為垂直同步信號,這個技術被稱為垂直同步;
  • 在等待垂直同步時,來回交替渲染兩個離屏的緩沖區,?垂直同步發生時,屏幕緩沖區和最近渲染完成的離屏緩沖區交換,實現充分利?硬件性能的?的。

總結

以上是生活随笔為你收集整理的OpenGL之常见的专业名词解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。