<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          渲染管線----通俗易懂向面試官介紹

          共 3139字,需瀏覽 7分鐘

           ·

          2022-06-07 13:38

          本文通過(guò)簡(jiǎn)短的語(yǔ)言解釋渲染管線,無(wú)論是第一次了解渲染管線,還是回顧,都有幫助。


          一、完整渲染流程


          在介紹渲染管線之前,先全局視角了解一下整個(gè)渲染引擎。

          整個(gè)渲染分為五個(gè)階段,如圖
          工具階段、資產(chǎn)調(diào)節(jié)階段、應(yīng)用程序階段、幾何階段、光柵化階段

          每個(gè)字停留一秒,多看幾眼。專業(yè)名稱自帶勸退buff


          一句話概括
          渲染引擎:對(duì)各種模型進(jìn)行染色、光照、陰影等渲染,繪制出屏幕畫面的功能模塊。
          每個(gè)階段都是干啥的呢?


          一句話概括
          工具階段:制作模型(鬼話版:定義幾何和表面特性)
          資產(chǎn)調(diào)節(jié)階段:轉(zhuǎn)換模型格式(處理幾何和材質(zhì))
          應(yīng)用程序階段:為渲染管線做準(zhǔn)備。準(zhǔn)備要渲染的模型(網(wǎng)格)
          幾何階段:處理網(wǎng)格頂點(diǎn)數(shù)據(jù),轉(zhuǎn)成屏幕空間的頂點(diǎn)信息

          光柵化階段:著色,輸出最終效果


          已經(jīng)盡量少專業(yè)名詞了。



          二、渲染管線的介紹


          回到這張圖

          渲染管線:嚴(yán)格來(lái)講,是GPU處理數(shù)據(jù)生成圖像的整個(gè)過(guò)程


          渲染流程:圖像繪制的流程。CPU和GPU一起完成的
          但是不可否認(rèn),CPU也是整個(gè)過(guò)程必不可少的,所以把它加上。變成這樣。


          基本信息了解之后,下面進(jìn)入管線細(xì)節(jié)。(八股文警告


          2.1 GPU渲染管線
          整個(gè)管線流程圖長(zhǎng)這樣。

          介紹的圖很多,偏愛這張。各個(gè)圖流程介紹細(xì)節(jié)上有所不同,重點(diǎn)在于便于理解


          一句話概括:

          一堆原始圖形數(shù)據(jù)途經(jīng)一個(gè)輸送管道,期間經(jīng)過(guò)各種變化處理最終出現(xiàn)在屏幕的過(guò)程

          渲染管線特點(diǎn):
          1. 前一階段輸出作為下一階段輸入
          2.可以并行執(zhí)行


          2.2 應(yīng)用程序階段:3件事
          可見性判斷:僅提交可見物體給GPU
          提交幾何圖元:提交網(wǎng)格、材質(zhì)等數(shù)據(jù),建立GPU命令表

          控制著色器參數(shù): uniform


             tips:
              應(yīng)用程序階段做的事情偏引擎向,所以介紹渲染管線的文章基本都不會(huì)提及干了啥,只會(huì)說(shuō),提供頂點(diǎn)數(shù)據(jù)。
              事實(shí)上3件事中每件都是一個(gè)大的模塊,非引擎程序員了解干了啥就足夠了。

          2.3 幾何階段
          幾何幾何,從名字就知道,處理的是幾何數(shù)據(jù)。
          主要流程包括:頂點(diǎn)著色器、圖元裝置(投影變換)、裁剪和屏幕映射
          頂點(diǎn)著色器:進(jìn)行頂點(diǎn)坐標(biāo)變換。將輸入的模型空間頂點(diǎn)坐標(biāo)變換到裁剪空間頂點(diǎn)坐標(biāo)。
          圖元裝配:將頂點(diǎn)裝配成指定圖元的形狀(如三角形)。
          幾何著色器:改變圖元。通過(guò)產(chǎn)生新頂點(diǎn)構(gòu)造出新的圖元來(lái)生成其他形狀。外殼著色器和域著色器可編程,鑲嵌器是由硬件管理。
          tips:
          事實(shí)上,圖云裝置階段可以細(xì)分,有的地方叫曲面細(xì)分。增加表面的三角面的數(shù)量,包括外殼著色器、鑲嵌器和域著色器構(gòu)成,其中外殼著色器和域著色器是可編程的,而鑲嵌器是有硬件管理。

          2.4 光柵化階段

          把圖元映射為最終屏幕上顯示的顏色。

          光柵化:把圖元映射為最終屏幕上相應(yīng)的像素(把三角型切分成一個(gè)個(gè)像素)。

          片段著色器:計(jì)算每個(gè)像素的最終顏色。

          深度測(cè)試和混合階段:判斷像素的遮擋關(guān)系和透明度,決定是否應(yīng)該丟棄和怎么顯示。



          三、面試環(huán)節(jié)
          問(wèn):
              了解渲染管線嗎?
              說(shuō)說(shuō)渲染管線?
          答:
          回答思路:
          1.是什么、有什么用

          2.具體過(guò)程


          參考答案
          基礎(chǔ)版
          1. 渲染管線就是一堆原始圖形數(shù)據(jù)經(jīng)過(guò)各種變化處理最終出現(xiàn)在屏幕的過(guò)程。

          渲染管線可分為三個(gè)階段,應(yīng)用程序階段,幾何階段,和光柵化階段


          2. 應(yīng)用程序階段由CPU主要負(fù)責(zé)。CPU將GPU渲染需要的燈光、模型準(zhǔn)備好,并設(shè)置好渲染狀態(tài),為GPU渲染做好準(zhǔn)備。


          3. 幾何階段把輸入的3D數(shù)據(jù)轉(zhuǎn)換成2D數(shù)據(jù)。包括頂點(diǎn)著色器、圖元裝置、裁剪和屏幕映射幾個(gè)過(guò)程。
          頂點(diǎn)著色器主要進(jìn)行頂點(diǎn)坐標(biāo)變換。將輸入的模型空間頂點(diǎn)坐標(biāo)變換到裁剪空間頂點(diǎn)坐標(biāo)。
          圖元裝配頂點(diǎn)裝配成指定圖元的形狀。

          幾何著色器改變圖元。通過(guò)產(chǎn)生新頂點(diǎn)構(gòu)造出新的圖元來(lái)生成其他形狀。


          4. 光柵化階段把圖元映射為最終屏幕上顯示的顏色。包括光柵化,片段著色,深度測(cè)試和混合。
          光柵化將頂點(diǎn)轉(zhuǎn)為屏幕上的像素。
          片段著色器計(jì)算每個(gè)像素的最終顏色。
          深度測(cè)試通過(guò)深度信息判斷像素的遮擋關(guān)系。

          混合階段通過(guò)透明度將像素進(jìn)行混合。


          5. 最終渲染好的顏色先被送入后置緩沖,隨后再替換前置緩沖,顯示在屏幕上。



          深入版
          1. 渲染管線就是一堆原始圖形數(shù)據(jù)經(jīng)過(guò)各種變化處理最終出現(xiàn)在屏幕的過(guò)程。
          渲染管線可分為三個(gè)階段,應(yīng)用程序階段,幾何階段,和光柵化階段。

          2. 應(yīng)用程序階段由CPU主要負(fù)責(zé)。CPU將GPU渲染需要的燈光、模型準(zhǔn)備好,隨后向GPU下達(dá)一個(gè)渲染指令Draw Call,即往命令緩沖區(qū)中放入命令,GPU則依次取出命令執(zhí)行

          3. 幾何階段把輸入的3D數(shù)據(jù)轉(zhuǎn)換成2D數(shù)據(jù)。包括頂點(diǎn)著色器、圖元裝置、裁剪和屏幕映射幾個(gè)過(guò)程。
          頂點(diǎn)著色器主要進(jìn)行頂點(diǎn)坐標(biāo)變換。將輸入的模型空間頂點(diǎn)坐標(biāo)變換到裁剪空間頂點(diǎn)坐標(biāo)
          圖元裝配頂點(diǎn)裝配成指定圖元的形狀??梢?strong>細(xì)分為外殼著色器、鑲嵌器和域著色器。
          幾何著色器通過(guò)產(chǎn)生新頂點(diǎn)構(gòu)造出新的圖元來(lái)生成其他形狀。
          圖元組裝將輸入的頂點(diǎn)組裝成指定的圖元。

          圖元組裝后會(huì)進(jìn)行屏幕映射的操作,包括透視除法(投影、裁剪轉(zhuǎn)成2維)和視口變換(映射,適配到屏幕),將圖元從三維空間映射到二維平面上,這是由硬件完成的。


          (tips: 注形狀(圖元)組裝和圖元裝配的區(qū)別。翻譯成中文容易產(chǎn)生歧義
          形狀裝配(shape assemly),把點(diǎn)裝成一個(gè)個(gè)的圖元(如三角型),傳入幾何著色器
          圖元組裝(primitive setup),把3D轉(zhuǎn)2D,并適配
          暈了.....沒(méi)事

          哪個(gè)叫組裝哪個(gè)叫裝配無(wú)所謂,只要記住具體的做法就行,名字混了也無(wú)所謂。)


          4. 光柵化階段把圖元映射為最終屏幕上顯示的顏色,包括光柵化,片段著色,透明度測(cè)試和模板測(cè)試和混合。
          光柵化將頂點(diǎn)轉(zhuǎn)為屏幕上的像素。會(huì)進(jìn)行三角形遍歷。三角型遍歷,檢測(cè)出所有被三角型覆蓋的像素。(此處可拓展出怎么劃分片元、怎么抗鋸齒)
          片段著色器計(jì)算每個(gè)像素的最終顏色。是一個(gè)可編程的階段,主要的光照處理都在這個(gè)階段。
          透明度(Alpha)測(cè)試通過(guò)深度信息決定像素是否顯示。可設(shè)置閾值,顯示的像素將與顏色緩沖區(qū)中顏色混合。
          模板測(cè)試通過(guò)片元的模板值與模板緩沖區(qū)的模板值的比較來(lái)篩選像素。
          深度測(cè)試通過(guò)深度信息判斷像素的遮擋關(guān)系。篩選掉被遮擋的像素?,F(xiàn)在大多數(shù) GPU 都支持提前深度測(cè)試(Early depth testing),在片元著色器之前測(cè)試,由硬件功能完成。

          5. 最終渲染好的顏色先被送入后置緩沖,隨后再替換前置緩沖,顯示在屏幕上



          使用深入版有可能下一步面臨問(wèn)題:
          常見的坐標(biāo)系有哪些?有什么含義?為什么需要?怎么轉(zhuǎn)換?
          透視除法和視口變換詳細(xì)講一下?
          渲染半透明物體的前后順序是什么樣的,為什么?
          常見的光照模型有哪些?
          光柵化常見算法有哪些?

          抗鋸齒算法有哪些?


          在學(xué)習(xí)階段,可以也通過(guò)這些問(wèn)題深入了解渲染管線,扎實(shí)理解。


          以上僅供參考,完全可根據(jù)自身了解情況深入或者刪減。最好能用自己的話復(fù)述一遍。


          最后歡迎大家加入 音視頻開發(fā)進(jìn)階 知識(shí)星球 ,這里有知識(shí)干貨、編程答疑、開發(fā)教程,還有很多精彩分享。


          更多內(nèi)容可以在星球菜單中找到,隨著時(shí)間推移,干貨也會(huì)越來(lái)越多?。。?/span>


          給出 10元 優(yōu)惠券,漲價(jià)在即,目前還是白菜價(jià),基本上提幾個(gè)問(wèn)題就回本,投資自己就是最好的投資?。?!


          加我微信 ezglumes ,拉你進(jìn)技術(shù)交流群

          推薦閱讀:

          音視頻開發(fā)工作經(jīng)驗(yàn)分享 || 視頻版

          OpenGL ES 學(xué)習(xí)資源分享

          開通專輯 | 細(xì)數(shù)那些年寫過(guò)的技術(shù)文章專輯

          Android NDK 免費(fèi)視頻在線學(xué)習(xí)!??!

          你想要的音視頻開發(fā)資料庫(kù)來(lái)了

          推薦幾個(gè)堪稱教科書級(jí)別的 Android 音視頻入門項(xiàng)目

          覺(jué)得不錯(cuò),點(diǎn)個(gè)在看唄~


          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲自拍手机在线 | 特级黄色免费无码 | 91精品国产乱码久久 - | 日本一区二区三区久久久久久久久不卡免费 | 日韩精品人妻一区二区 |