座標の変換
OpenGL ユーティリティ ライブラリ (GLU) には、一般的に使用されるマトリックス変換関数がいくつか用意されています。 gluOrtho2D を使用して 2 次元の正投影表示領域、gluPerspective を使用した標準のパースペクティブ ビュー ボリューム、または gluLookAt を使用して指定されたアイポイントを中心とするビュー ボリュームを設定できます。 これらの各関数は、目的の行列を作成し、 glMultMatrix を使用して現在の行列に適用します。
gluPickMatrix 関数は、ビューポートの小さな領域に描画を制限するマトリックスを作成することで、ピッキング マトリックスの選択を簡略化します。 このマトリックスを適用した後、選択モードでシーンを再レンダリングすると、カーソルの近くに描画されるすべてのオブジェクトが選択され、それらに関する情報が選択バッファーに格納されます。 選択モードの詳細については、「選択とフィードバックの 実行」を参照してください。
オブジェクトが描画されているウィンドウ内の場所を確認するには、 gluProject を使用します。これにより、指定したオブジェクト座標 objx、 objy、 objj がmodelMatrix、 projMatrix、 およびビューポートを使用してウィンドウ座標に変換されます。 結果は winx、 winy、 winz に格納されます。 関数が成功した場合、戻り値はGL_TRUE。 関数が失敗した場合、戻り値はGL_FALSE。
gluUnProject 関数は逆変換を実行します。指定されたウィンドウ座標 winx、winy、winz を modelMatrix、projMatrix、ビューポートを使用してオブジェクト座標に変換します。 結果は objx、 objy、 objj に格納されます。 関数が成功した場合、戻り値はGL_TRUE。 関数が失敗した場合、戻り値はGL_FALSE。