三維渲染流程

  • 輸入裝配

    頂點緩存(位置,顏色,法線,紋理座標)
    頂點索引緩存
    CPU傳輸到GPU 經過圖形總線PCI Express
    定義頂點拓撲結構
  • 座標系轉換 Vertex Shader

    網格的數據是局部座標系
    變換到世界座標系 -- 經過矩陣的平移、旋轉、縮放
    變換到觀查座標系 -- 爲了後續的投影變換及其餘變換效率,進行取景變換(以攝像機爲原點,光軸與Z軸一至的全體變換)
  • 曲面細分 Shader Model 5.0
    Hull Shader 細分控制着色器
    Tessellation Stage(曲面細分)
    Domain Shader 細分計算着色器
  • 幾何着色器 Shader Model 4.0
    Geometry Shader(幾何着色器)
    頂點處理,與Vertex Shader不一樣的是一次一批頂點,可增長或減小几何數據
    stream-output stage 輸出流保存數據
  • 屏幕映射:

    裁剪 -- 視域體(視截體)外的去掉
    透視投影 -- 爲產生近大遠小視覺效果,用視域體建立投影矩陣
    視口變換 -- 將投影矩陣的頂點座標轉化爲屏幕的視口座標html

    背面消隱 -- 根據模型對攝像機朝向標記背面git

  • 光柵化

    決定最終屏幕上的像素數量。
    繪製每一個三角形單元,計算構成三角形單元的每一個像素的值。
  • 像素着色階段 Pixel Shader

    多重紋理可將自定義光照貼圖與目標混合實現自定義光照效果。
    多重紋理對應多重紋理座標。
    紋理可以使用索引引用紋理座標。
  • 輸出混合階段 Output-Merger Stage

    模板測試 -- 是否開啓模板測試?比較模板緩衝區值,未經過的捨棄。
    深度測試 -- 是滯開啓深度測試?比較深度值,未經過的捨棄。
    混合 -- 經過的以上測試的像素開始混合操做。github

相關資料

Shader語言相關

GLSL語言基礎:http://www.javashuo.com/article/p-hclzfrwg-gs.html
GLSL使用:https://learnopengl-cn.github.io/01%20Getting%20started/05%20Shaders/
HLSL官方文檔:https://docs.microsoft.com/zh-cn/windows/desktop/direct3dhlsl/dx-graphics-hlsl
高級着色語言Wk(日語版的更詳細): https://ja.wikipedia.org/wiki/High_Level_Shading_Language編程

渲染流程相關

概覽:https://blog.csdn.net/azhou_hui/article/details/48808469
DX11渲染管線:https://blog.csdn.net/xueyedie1234/article/details/51326005
WK渲染管線:https://en.m.wikipedia.org/wiki/Graphics_pipeline
MS DX渲染管線:https://docs.microsoft.com/zh-cn/windows/desktop/direct3d11/overviews-direct3d-11-graphics-pipelinewindows

着色器介紹

像素着色器:https://blog.csdn.net/DY_1024/article/details/87695844
曲面細分着色器:https://blog.csdn.net/liu_if_else/article/details/75039895
幾何着色器:https://blog.csdn.net/pizi0475/article/details/7795429緩存

UE相關

虛幻4中SceneDepth , PixelDepth ,Customdepth,CustomDepth StencilValue的區別
009 尋找UE4的D3D設備
跨平臺引擎Shader編譯流程分析1
跨平臺引擎Shader編譯流程分析2測試

DirectX9.0 3D遊戲開發編程基礎
UNITY SHADER入門精要ui

實例代碼

opengGL:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/
DirectX:https://zhuanlan.zhihu.com/p/28719057.net

其餘

cgToolkit:https://developer.nvidia.com/cg-toolkit-download
Dx3D歷史:https://www.cnblogs.com/lancidie/archive/2011/01/21/1941124.html
DX9自帶光源: 點光源,方向光,聚光源3d

相關文章
相關標籤/搜索