圖形 0 渲染流水線的簡單瞭解

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流水線上可高度編程的階段
      ·特定類型:頂點着色器、片元着色器等
      ·依靠着色器能夠用來控制流水線中渲染的細節編程

相關文章
相關標籤/搜索