OpenGLのgluLookAtや、glRotateなどの座標変換関数を使わずに、自前で座標変換を行うプログラムを作っていたのですが、若干ビュー行列を作る辺りでこんがらがってしまったので、整理のためにメモを残しておきます。 カメラの持つワールド行列が次のように定義されるとします。 XはカメラのローカルX軸、YはカメラのローカルY軸、ZはカメラのローカルZ軸、Pはカメラのワールド座標を示します。 このときカメラ視点から見た座標系であるビュー座標系に変換するためのビュー行列は次のように作れました。 ワールド座標系での位置座標Px, Py, Pzと各軸での内積をとり、カメラの位置座標をビュー座標系へ射影し、ビュー座標系でのカメラの位置座標分を引いてカメラの位置をビュー座標系の原点に持ってくるようなイメージです。 ワールド座標系からビュー座標系に変換したいあるモデルが持つワールド座標をMx, My