タグ

ブックマーク / tech-sketch.jp (2)

  • 3Dプログラミング基礎知識(1) - Tech-Sketch

    3Dプログラミングの基礎知識(1) はじめに 主にiPhone/AndroidからOpenGL ESを使って3D表現を行う場合に必要となる基礎知識についてまとめていきたいと思います。 基礎の基礎から説明して行くため、言語や3Dライブラリ(DirectX/OpenGL)に依存しない情報が多くなります。OpenGLに限らず「C++ + DirectX」などの環境で開発を行う人もどうぞ。 内容 5回ぐらいに分けて以下のような内容を書いていきたいと思います。 モデルを構成する頂点情報、面情報 画面に描画されるまでの流れ、平行移動・回転・拡縮行列(ワールド変換) カメラ、Zバッファ 法線、ライティング 頂点シェーダ、ピクセルシェーダ(フラグメントシェーダ) 座標系 3D表現を行う為には3次元の座標系をどのように定義するか決める必要があります。 2Dの場合はX軸、Y軸で座標系を表しますが、3Dの場

  • 3Dプログラミング基礎知識(4) - Tech-Sketch

    3Dプログラミング基礎知識(3)の続きです。 画面に描画されるまでの流れ(おさらい) 今回は「射影変換」についてみていきたいと思います。 射影変換 前回書いた「ビュー変換」によってカメラが定義され、カメラから見た光景が表現されました。 しかし、この時点ではオブジェクトはまだ3D座標系に位置しており、2Dのディスプレイ上に表示することはできません。 遠近法などを考慮した上で、3D座標上のオブジェクトを2Dの平面に投影する。この変換を行うのが「射影変換」になります。 射影変換のパラメータ 射影変換には距離によって見かけの大きさが変化しない「正射影(平行射影、平行投影などとも)」もありますが、今回は現実の世界と同じく遠近感のある「透視投影」を用います。透視投影の場合、下図に示すように前面、背面、上面、下面、左面、右面の6面で構成される視錐台を定義します。 画像に含まれる赤文字で書かれた数字が

  • 1