arusu0629のブログ

Swift初心者エンジニア

WebGLについて③

【前回】 arusu0629.hatenablog.com

行列(マトリックス)の基礎知識
行列の必要性

3Dレンダリングする際に非常に多くの計算が必要になる
どんなモデルをどこに、どんな角度で、どんな大きさで存在するのか、それを描画したいモデルの数分計算する必要がある
行列は数字を詰め合わせたもののようなイメージで、1つの行列の中にたくさんの情報を詰め込むことができる
それはつまり、モデル座標変換・ビュー座標変換・プロジェクション座標変換の一連の座標変換を1つの行列で全ての座標変換の結果をまとめて処理することが出来る

一般的な3Dレンダリングの世界では4×4の行列を用いるのが一般的

モデル変換行列

→3Dモデルの位置拡大縮小の有無回転しているかどうかなどを定義する

ビュー変換行列

カメラの位置やカメラの向き、そしてカメラがどこを見ているか(注視点)を1つの行列で定義する

プロジェクション変換

ディスプレイの縦横の比率(アスペクト比)視野角などを定義する

【まとめ】
3Dレンダリングを行う上で、行列は欠かすことのできない存在。なぜならば3Dレンダリングを行う際に非常にたくさんの計算を要するため、それを実現するために行列は適した道具なため
各座標変換(モデル、ビュー、プロジェクション)を行列として定義して、それらの行列を掛け合わせて座標変換を実現する(行列の掛け算は掛け合わせる順序によって結果が変わるため注意が必要)

【続き】 arusu0629.hatenablog.com