3.1レンダリングパイプラインの開発
グラフィカルなプログラミング開発
- プログラミング初期のグラフィックス:サプライヤーが提供するライブラリのハードウェアを呼び出す(プリミティブおよびライブラリプロパティを描くために存在しません)
- グラフィカル標準生成:サプライヤ標準ハードウェアグラフィックスデータベースを、可能にする独立した装置での方法で画像を生成します
- GKS(グラフィカルカーネルシステム、グラフィカルカーネルシステム)
- PHISS(プログラマの階層インタラクティブなグラフィックスシステム、プログラマ階層対話型グラフィックスシステム)
- OpenGLの
- 固定回線
- グラフィックスAPIは、ハードウェアを動作させるための標準インタフェースを提供し、内部から達成され、提案された様々なプログラマのためのAPIリクエストは員スケッチまたは属性は、固定的に処理するために使用されています
- この実装は、一般的に内部と呼ばれる固定機能レンダリングパイプライン
- プログラマブルに固定
- フック関数のフックが発生しますの特定のステップの動作を変更するために、プログラマブルシェーダパイプラインを使用して、固定機能パイプラインブレークを
- プログラマブルパイプライン
GPUベースのプログラム可能なレンダリングパイプライン
機能:指定された場合、仮想カメラ、三次元オブジェクト、光源、照明パターン、テクスチャなど様々な条件の下で2次元画像を描画又は生成のコースを決定します
三つの概念段パイプライン
- アプリケーション相:画面形状に引き出す必要性、等の点、線、長方形、などすなわち描画プリミティブは、レンダリングパイプラインの次のステージに入力されます。具体的にはプリミティブの頂点データ、カメラ位置、光テクスチャパラメータを含みます。
- 頂点データ画面マップ:舞台を設定します。次のものが必要です。
- 世界への個々の要素は、モデル変換である座標系
- 材料着色効果の頂点における光のテクスチャ照明計算
- 範囲とクリッピング変換を撮影するカメラの位置は、観察されました
- 最後に、画面マッピング、三次元モデルは、画面座標への遷移であります
- ラスタ段階:各ピクセルのための正しい色、パターン全体を描画します
3.2プログラマブルレンダリングパイプライン
GPUレンダリングパイプラインの作業プロセス
幾何学相
- 頂点シェーダ:
- モデル変換:モデル座標系 - >ワールド座標系、座標系へのすべてのモデル
- ビュー変換:確立観測座標系を
- 頂点シェーダ:材料の上部頂点に照明効果を決定します
- ジオメトリ、テッセレーションシェーダ
- カット:標準観測空間
- 画面のマッピング:変換2次元データ
- 頂点シェーダ:
ラスタライズ段階
- トライアングルセット
- 三角形トラバーサル
- フラグメントシェーダ
- 片元操作
断片 - >ステンシルテスト - >デプステスト - >混色 - >フレームバッファ
3.3シェーダプログラミング
シェーダー言語シェーディング言語
GLSL(OpenGLのシェーディング言語)OpenGLのシェーダ言語
頂点シェーダ頂点シェーダ、ジオメトリシェーダジオメトリシェーダ、テッセレーションシェーダテッセレーションシェーダ、フラグメントシェーダフラグメントシェーダ
OpenGLのシェーダプロセスで使用されます:
- シェーダオブジェクトを作成します。
- ソースは、関連するシェーダオブジェクト
- シェーダコンパイラ
- プログラム・オブジェクトを作成します。
- プログラムオブジェクトにシェーダオブジェクトの関連付け
とOpenGLの通信
- OpenGLは、すべてのグローバル変数シェーダにデータの均一なセットを介して渡されます
データの種類
スカラー:整数(int型)、符号なし整数(UINT)、ブールタイプ(ブール値)とフロート(浮き)
ベクトル:ベクトルは3、4要素を持つことができます
vec4 A = vec4(1.0,2.0,3.0,4.0)。
行列
MAT2 M MAT2(1.0,2.0,3.0,4.0)。
構造およびアレイ:アレイの基材または構造タイプは、データの任意のタイプであってもよいです
//光源光源
構造体光源{
vec3色; //色
vec3位置; //位置
}
光源スポットライト[10]; // 10個の光源
制御構造
- ループ構造:、しばらくの間、および行い、しばらく
- 選択サイクル:IF-THEN、IF-THEN-ELSE、GLGL3.0バージョンが導入構造を切り替えます
- 注:後藤文とラベルが許可されていません
EBO、VBO和VAO
- EBO
- また、IBOとして知られている要素バッファオブジェクト、:インデックスバッファオブジェクト、インデックスバッファオブジェクト
- 主頂点のインデックス情報を格納するために使用
- 2月
- 頂点バッファ・オブジェクト、頂点バッファオブジェクトは、主に各種の情報頂点を記憶するために使用されます
- 利点:VBOに頂点情報モデルは、それぞれの絵のモデルので、データはもはやCPUのメモリの勢力圏から取られていないが、メモリ効率を向上させるために、GPUから直接取得します
- VAO
- 頂点配列オブジェクト、頂点配列オブジェクト
- VAOは、所望のオブジェクトフォーマットと頂点データ参照のVBO頂点データを格納する結合特性を全ての頂点データの保存された状態であります
- EBO