0.渲染流水線
目標:生成(或渲染)一張二維紋理
三個階段:
0.1.應用階段
0.1.1.把資料加載到顯存中
硬碟 --> 資料記憶體 -->(網格、紋理)--> 顯存
0.1.2.設定渲染狀態
著色器、光源、材質等
0.1.3.呼叫DrawCall
·CPU呼叫影像編程介面
·DrawCall:cpu呼叫一個渲染命令,告訴gpu開始渲染,
-- 其中包含需要被渲染的圖元串列,不再包含任何材質資訊
0.2.幾何階段
·幾何階段的主要作業就是“變換三維頂點坐標”和“光照計算”,
0.2.1.頂點著色器
BIG:可編程
坐標變換、逐定點光照
·輸出:每個頂點對應的紋理坐標
0.2.2.曲面細分著色器
0.2.3.幾何著色器
0.2.4.裁剪
攝像機視野范圍
0.2.5.螢屏映射
-- 輸出網格頂點
0.3.光柵化階段
·計算每個圖元覆寫了那些像素,為這些像素計算他們的顏色
3.1.三角形設定
計算光柵化一個三角形網格的資訊
0.3.2.三角形遍歷
掃描變換
·輸出:片元序列
0.3.3.片元著色器(像素著色器)
BIG:可編程
紋理采樣等
0.3.4.逐片元操作
BIG:高度可配置性
0.3.4.1.決定每個片元的可見性
模板測驗
深度測驗
0.3.4.2.片元的顏色和已經存盤在顏色緩沖區的顏色進行合并(混合)
0.4.CPU\GPU的并行作業
CPU -- 命令緩沖區(命令佇列) -- GPU
每次呼叫前,CPU需要準備很多的內容(資料、狀態、命令),同時有檢查渲染狀態等很多準備作業
·GPU的渲染能力很強,但是CPU會花時間在提交命令(DrawCall)上,造成CPU過載
0.4.1.減少DrawCall
4.1.1.靜態物體的批處理,
4.1.2.避免使用大量很小的網格
4.1.3.避免使用過多的材質
0.4.2.shader
·GPU流水線上可高度編程的階段
·特定型別:頂點著色器、片元著色器等
·依靠著色器可以用來控制流水線中渲染的細節
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227277.html
標籤:其他
上一篇:憶十年盼歸往
