渲染原理

圖像渲染流程粗粒度地大概分為下面這些步驟:

渲染流程圖如下:


Application 應(yīng)用處理階段:得到圖元

CPU 負(fù)責(zé)處理應(yīng)用中的圖像,在這個階段應(yīng)用可能會對圖像進(jìn)行一系列的操作或者改變,最終將新的圖像信息傳給下一階段。這部分信息被叫做圖元(primitives),通常是三角形、線段、頂點等。

Geometry 幾何處理階段:處理圖元

GPU 拿到上一個階段傳遞下來的圖元信息,GPU 會對這部分圖元進(jìn)行處理,之后輸出新的圖元。

這一系列階段包括:頂點著色器(Vertex Shader):這個階段中會將圖元中的頂點信息進(jìn)行視角轉(zhuǎn)換、添加光照信息、增加紋理等操作。

形狀裝配(Shape Assembly):圖元中的三角形、線段、點分別對應(yīng)三個 Vertex、兩個 Vertex、一個 Vertex。這個階段會將 Vertex 連接成相對應(yīng)的形狀。

幾何著色器(Geometry Shader):額外添加額外的Vertex,將原始圖元轉(zhuǎn)換成新圖元,以構(gòu)建一個不一樣的模型。簡單來說就是基于通過三角形、線段和點構(gòu)建更復(fù)雜的幾何圖形。

Rasterization 光柵化階段:圖元轉(zhuǎn)換為像素

光柵化的主要目的是將幾何渲染之后的圖元信息,轉(zhuǎn)換為一系列的像素,以便后續(xù)顯示在屏幕上。這個階段中會根據(jù)圖元信息,計算出每個圖元所覆蓋的像素信息等,從而將像素劃分成不同的部分。

一種簡單的劃分就是根據(jù)中心點,如果像素的中心點在圖元內(nèi)部,那么這個像素就屬于這個圖元。如上圖所示,深藍(lán)色的線就是圖元信息所構(gòu)建出的三角形;而通過是否覆蓋中心點,可以遍歷出所有屬于該圖元的所有像素,即淺藍(lán)色部分。

Pixel 像素處理階段:處理像素,得到位圖

經(jīng)過上述光柵化階段,我們得到了圖元所對應(yīng)的像素,此時,我們需要給這些像素填充顏色和效果。所以最后這個階段就是給像素填充正確的內(nèi)容,最終顯示在屏幕上。這些經(jīng)過處理、蘊(yùn)含大量信息的像素點集合,被稱作位圖(bitmap)。也就是說,Pixel 階段最終輸出的結(jié)果就是位圖,過程具體包含:

這些點可以進(jìn)行不同的排列和染色以構(gòu)成圖樣。當(dāng)放大位圖時,可以看見賴以構(gòu)成整個圖像的無數(shù)單個方塊。只要有足夠多的不同色彩的像素,就可以制作出色彩豐富的圖象,逼真地表現(xiàn)自然界的景象??s放和旋轉(zhuǎn)容易失真,同時文件容量較大。

片段著色器(Fragment Shader):也叫做 Pixel Shader,這個階段的目的是給每一個像素 Pixel 賦予正確的顏色。顏色的來源就是之前得到的頂點、紋理、光照等信息。由于需要處理紋理、光照等復(fù)雜信息,所以這通常是整個系統(tǒng)的性能瓶頸。

測試與混合(Tests and Blending):也叫做 Merging 階段,這個階段主要處理片段的前后位置以及透明度。這個階段會檢測各個著色片段的深度值 z 坐標(biāo),從而判斷片段的前后位置,以及是否應(yīng)該被舍棄。同時也會計算相應(yīng)的透明度 alpha 值,從而進(jìn)行片段的混合,得到最終的顏色。

參考

http://www.itdecent.cn/p/e2cead5c3e13

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 計算機(jī)渲染原理 CPU 與 GPU 的架構(gòu) CPU(Central Processing Unit):現(xiàn)代計...
    M_慕宸閱讀 525評論 0 0
  • Head 在性能優(yōu)化中,有一個重要的知識點就是卡頓優(yōu)化,我們以FPS(每秒傳輸幀數(shù)(Frames Per Seco...
    寧夏灼雪__閱讀 2,826評論 0 7
  • OpenGL render theory on iOS iOS 底層渲染原理 寫在前面 下半年做過一次分享會,是以...
    皮皮Warrior閱讀 3,373評論 0 12
  • 這是我在《游戲架構(gòu)-核心技術(shù)與面試精粹》看的,記錄一下~ 啥玩意是渲染?游戲圖像的繪制被稱為渲染 啥玩意是渲染管線...
    APP4x閱讀 2,899評論 0 2
  • 1. 圖像渲染流程 如圖所示,CPU 計算好顯示內(nèi)容提交到 GPU,GPU 渲染完成后將渲染結(jié)果放入幀緩沖區(qū),隨后...
    NapoleonY閱讀 1,464評論 0 9

友情鏈接更多精彩內(nèi)容