操作を変換
モデル変換(プロセスの頂点シェーダステージ)
ビューは、(プロセスの頂点シェーダステージ)変換します
モデルビュー変換(プロセスの頂点シェーダステージ)
射影変換(プロセスの頂点シェーダステージ)
このステップでは、我々は、オブジェクトの最終座標がカメラに見えますが、人間の目が見ることができる、と我々はまだシーンを異なる、我々は世界で物事を見るようなは、はるかに小さい効果に近い視点からのもの投影変換は、変換のこれらの効果を達成するために使用されます。
正射影
正射影は、オブジェクトの平行投影が直交射影においてはるかに小さい視覚効果の近くにないとみなすことができ、典型的には(かかわらず、大きな距離の同一の、突起が一般2Dまたは2.5Dで使用されて見えますゲーム内の3D文字2Dシーン)を、UIの3Dゲームは、この投影を達成するために使用されるであろう。
次のように正射影ライブラリコードを使用して作成されたGL-行列です。
1 VAR M4 = glMatrix.mat4.create(); 2 // 投影領域決意の各顔の大きさを設定することによって 3。 glMatrix.mat4.ortho(M4、-100、100、-100、100、-100、100) ;
透視投影
透視投影は、はるかに小さい視覚効果の近くに、投影は、一般的な3Dゲームで使用されている3Dの世界を見るために、人間の目をシミュレートすることができます。
以下のコードGL-行列のライブラリを使用して透視投影を作成します。
1つの VAR M4 = glMatrix.mat4.create(); 2 // 方法1:垂直範囲、及び投影領域のアスペクト比を決定近遠心面 3 glMatrix.mat4.perspective(M4、1、1、0、100 ); 4 // 方法2:各顔の大きさを設定することによって決定投影領域 5 glMatrix.mat4.frustum(M4、-100、100、-100、100、-100、100)。
透視除算(プロセスのプリミティブアセンブリステージ)
即ちX、Y、Z成分で割ったWコンポーネントの斜視分割三次元透視効果を生成するために、(デフォルト値wが1です)。
詳しい情報は見つけることができます:https://www.jianshu.com/p/7e701d7bfd79
ビューポート変換(プロセスのプリミティブアセンブリステージ)
ビューポート変換は、幾何学的変換を介して定義されているコンピュータグラフィックスにおいて、2次元平面上の三次元空間における主要被写体の投影、クリッピング後のオブジェクトの射影変換され、指定された領域に表示される画面を変換します。
ユーザが2つのメソッドを呼び出すことにより、変換ステップを制御することができます。
gl.viewPort
ピクセル単位で、最終的な表示位置とサイズを決定します。
gl.depthRange
最終的な深さ領域を決定することは、範囲[0-1]から選択される、表示することができます。
以下に示すように完全な変換ライン(形質転換株)
変換の順序の重要性
変換行列スタック
スタック
ポップ
- マトリックステーブルに圧入。
- マトリクステーブルトップのグローバル座標を得るために、デスクトップ上の行列と行列乗算をスタック。
- オブジェクトがテーブル上に描画する必要がマトリクステーブルに圧入、スタックの最上部は、行列の行列乗算にオブジェクトを描画する必要が使用されてもよいです。
- デスクトップオブジェクトを描画する必要、ポップスタックマトリックスを有していない(すなわち、マトリックスのデスクトップ)。
- この時点で、すなわち、マトリックスの第一脚部内のスタックの上部とスタック行列行列行列乗算のテーブルトップは、マトリックスは、第一の脚部のグローバル座標を得ます。