タグ

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

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

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

    mntone
    mntone 2015/02/05
  • 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の場

    mntone
    mntone 2015/01/25
  • 3Dプログラミング基礎知識(3) - Tech-Sketch

    3Dプログラミング基礎知識(2)の続きです。 画面に描画されるまでの流れ(おさらい) 今回は「ビュー変換」についてみていきたいと思います。 ビュー変換 前回書いた「ワールド変換」によって、3D空間に立方体が配置されました。 しかし、残念なことに現在一般的に使われているディスプレイが表示できるのは平面のみに限られており、3D空間に配置した立方体をそのまま表示することはできません。 現実という3D空間に対してカメラを向け、写真を撮ると3D空間を2Dの平面上に表現することができます。これと同じく、仮想的な3D空間においても仮想的なカメラを配置し、3D空間を特定の方向から眺めた結果を求めることで、2D平面上に表現することが可能です。 この変換を行うのが「ビュー変換」と、次回取り上げる「射影変換」になります。 ビュー変換(カメラ)のパラメータ カメラを用いて撮影する場合、撮影結果に影響するパラメー

    mntone
    mntone 2014/09/17
  • 1