3Dのアプリケーションにおいて、画面をクリックして空間中のオブジェクトの表示位置を指定するときなど、画面の2次元座標に対応する3次元空間座標が欲しいときがあります。こんなとき、どんな計算を行えば良いかについて解説します。コードはProcessing 2.2.1にて動作を確認。 画面位置に対応するローカル座標 まず本題に入る前に、3次元空間中の点がウィンドウ上に描画されるまでの過程を理解しておく必要があります。ローカル座標系におかれたCG物体は、モデリング変換、ビューイング変換、投影変換、ビューポート変換を経て画面に描画されます。 モデリング変換を行う行列をMm、ビューイング変換を行う行列をMv、投影変換を行う行列(プロジェクション行列)をP、ビューポート変換を行う行列をUと置きます。それぞれ4x4の行列です。このうち、モデリング変換とビューイング変換はモデルビュー行列という1つの行列で表現
![Processingで画面座標に対応する空間座標を計算する - Imaginary Code](https://cdn-ak-scissors.b.st-hatena.com/image/square/ab826f29d9bc828fd026297a0f1fc8a2c94cc4e0/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkougaku-navi%2F20160103%2F20160103001656.gif)