计算机图形学——什么是渲染管线
什么是渲染管線
渲染管線也叫渲染流水線,一般我們將渲染流程分成3個階段:
-
應用階段
應用階段的功能通常由CPU負責實現,開發者具有對這個階段的絕對控制權。應用階段開發者由3個任務:1.準備好場景數據(攝像機,視錐體,模型,光源等)
2.為了提高渲染性能,我們在這里會做一些剔除工作
3.設置渲染狀態,例如模型的顏色,紋理,使用哪個shader等
這一階段最重要的是輸出渲染所需要的幾何信息 -
幾何階段
幾何階段處理所有和我們要繪制的幾何相關的事情。決定需要繪制的圖元是什么,怎么樣繪制它們,在哪里繪制它們。這一階段通常在GPU上進行。幾何階段會做哪些事情呢,如下圖所示1.頂點著色器:是流水線的第一個階段,它的輸入來自CPU。頂點著色器處理的單位是頂點,也就是說,輸入進來的每個頂點都會調用一次頂點著色器。頂點著色器完成2個工作:
(1)坐標變換
就是對頂點的坐標進行某種變換。當然,必須要做的變換是將頂點坐標從模型空間轉換到齊次裁剪 空間。 當然我們可以自己加入很多頂點變換,如,模擬水面的頂點擾動,布料模擬的頂點計算等
(2)逐頂點光照
2.曲面細分著色器(非必須):
3.幾何著色器(非必須):
4.裁剪:由于我們場景會很大,而攝像機的視野范圍很有可能不會覆蓋所有的場景物體,不在視野范圍內的不需要處理,裁剪就是為了完成這個目的。
5.屏幕映射:將空間坐標轉換為屏幕坐標 -
光柵化階段
這一階段會使用幾何階段傳遞的數據來產生屏幕上的像素,并渲染出最終的圖像。這一階段也子啊GPU上運行。
1.三角形設置:計算光柵化一個三角形所需要的網格信息
2.三角形遍歷: 三角形遍歷階段檢查每個像素是否被一個三角形網格所覆蓋。如果被覆蓋的話,就會生成一個片元。
3.片元著色器:片元著色器的輸入是上一個階段對頂點信息插值得到的結果,更具體來說,是根據那些從頂點著色器中輸出的數據插值得到的。而它的輸出是一個或者多個顏色。這一階段完成很多重要的渲染技術,其中最重要的技術之一就是紋理采樣。為了在片元著色器中進行紋理采樣,我們通常會在頂點著色器階段輸出每個頂點對應的紋理坐標,然后經過光柵化階段對三角形網格的3個頂點對應的紋理坐標進行查之后,就可以得到其覆蓋的片元的紋理。
4.逐片元操作:
(1) 決定每個片元的可見性。如深度測試,模板測試等
(2) 對片元進行著色
CPU和GPU的通信
渲染流水線的起點是CPU,即應用階段,可以分為一下三個階段- 把數據加載到現存中
- 設置渲染狀態
- 調用DrawCall
什么是DrawCall,GPU調用圖像編程接口,如OpenGL中的glDrawElements命令或者DirectX中的DrawIndexedPrimitive命令,以命令GPU進行渲染操作。
總結
參考書籍:Unity Shader 入門精要
總結
以上是生活随笔為你收集整理的计算机图形学——什么是渲染管线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 廉洁文化 计算机学院,计算机学院“廉洁在
- 下一篇: 监视器的功能,光源分类,TFSF光源斜入