LoginSignup
0
2

More than 1 year has passed since last update.

グラフィックス勉強のノード_1.1_レンダリングパイプライン(RenderingPipeline)

Posted at

[toc]

レンダリングパイプライン(RenderingPipeline)

1. 全体の流れ

image-20220628110002848

  1. Application ステージ
  2. ジオメトリー ステージ(Geometry Processing)
  3. ラスタライズ ステージ (Rasterisation)
  4. Pixel Processing ステージ
  5. Post Processing //現在のゲーム制作として重要な一環です。

2. Application ステージ

​ 一般的はCPUで実行する

  1. シーンデータの準備

    オブジェクトの頂点座標、uv座標、positon、rotation、Scaleなど

    ライティングデータ

  2. 加速アルゴリズム/Culling

    見えないオブジェクトをカリング(Culling)する。よく使われているアルゴリズムはBVH(Bounding Volume Hierarchy)、八分木(Octree)

  3. レンダリングステータスの設定

    Batching、レンダリング順番、レンダリングターゲット(Framebuffer/RenderTarget)、レンダリングモード(Forward/Deferred)

  4. DrawCallを使って、データをGPUに輸出

    頂点データ,MVPマトリクスなど

3. ジオメトリー ステージ(Geometry Processing) 

​ GPUで実行する

image-20220628110218831

  1. Vertex Shadering

    1. 頂点の色を三角形に渡って補間されます

    2. MVP変換 

      ObjectSpace -> WorldSpace -> ViewSpace -> ClipSpace->SceenSpace

      image-20220628122310687

  2. Optional Vertex Processing

    1. テッセレーション (Tessellation) (optional)

      ポリゴンをさらに分割して表現することです、画像をより詳細かつ滑らかで現実感のあるものにする技術である

    2. Geometry Shader(Optional) 

  3. Projection 

    直交(orthogonal)、透視投影(perspective projection)image-20220628120808187

  4. Clipping

    1. Cull Front/Back/Off //
    2. Frustum Culling //カメラ以外Primitivesを除外する。レンダリングしないimage-20220628115244201

    注意:opengl NDC座標xyz範囲(-1,1) d3d NDC座標xy範囲(-1,1) z範囲(0,1)

    流れ: ClipSpace -> NDC Space -> ScreenMapping -> ScreenSpace

  5. Screen Mapping (NDCSpace範囲は(-1,1)=>ScreenSpace(スクリーンの大きさ(1920x1080など)))image-20220628115435020

4. ラスタライズ ステージ (Rasterisation)

image-20220628123021346

  1. 三角形設置 頂点座標とインデックスを使って三角形を設置
image-20220628123452568
  1. 三角形内のピクセルをトラバーサル(Traversal)して、ピクセルの線形補間を行う。image-20220628123506208

  2. アンチエイリアシング anti-aliasing

    1. MSAA(Multisample AA) ラスタライズ段階、複数もサンプルポイントを設置する。https://mynameismjp.files.wordpress.com/2012/10/msaa_partial_coverage2.png

    2. SSAA (SuperSample AA)

      //この段階ではない、ゲーム解像度よりn倍大きいバッファをレンダリングする、そのバッファをサンプリングします。

    3. FXAA/TXAA //この段階ではない、Postproceing技術

5. Pixel Processing ステージ

  1. Fragment Shader

    ピクセルの色計算Snipaste_2022-06-28_13-42-58

  2. Color Blending

    1. alphaTest
    2. depth buffer test
    3. Stencil Test
    4. Blending
  3. RenderTarget

    ​ FrameBuffer, RenderTexture

6. Post processing

​ 前のレンダリング完成後、その結果を再処理する

参考資料

​ Real-Time Rendering 4th Edition

https://learnopengl.com/

https://www.hardwaretimes.com/pc-graphics-settings-explained-msaa-vs-fxaa-vs-smaa-vs-taa/

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2