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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

计算机图形学——什么是渲染管线

發布時間:2024/3/24 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机图形学——什么是渲染管线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是渲染管線

渲染管線也叫渲染流水線,一般我們將渲染流程分成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 入門精要

總結

以上是生活随笔為你收集整理的计算机图形学——什么是渲染管线的全部內容,希望文章能夠幫你解決所遇到的問題。

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