日々の出来事などを当社スタッフが書いております。ESで開発しているのですが、ゲームではよくある、3Dキャラのところに2Dステータスを表示することを実現しようとしたのです。無印OpenGLだと、gluProjectで、3D座標をスクリーン座標に変換できるのですが、ESにはそれがありません。そこで、gluProject互換関数を自前で用意しました。後は、3D座標と、モデルビュー行列と、射影行列と、ビューポート行列をその関数に渡すだけとなったところで、またまた問題が...ESでは、glGetFloatやglGetIntegerが実装されてないのです=■●_仕方が無いので、自前でモデルビュー行列と、射影行列と、ビューポート行列を構築するようにしました...モデルビュー行列は、gluLookAt互換関数は既に作ってあったので、そこから求めることができました。ビューポート行列も、glViewportに渡すパラメータと同じものを単にセットしました。問題は、射影行列です。無事、2D座標を取得することができました!これは昨日の話です。実は、昨日実装したgluProject互換関数を使って2D座標を取得した場合、Y座標が上下反転したり、ビューポート座標の左上が反映されていなかったりと、しっくり来ない部分があり、そういえば、会社のOpenGLの本で、まだ見ていない本があったなぁと思い出し、gluProject辺りをちょっと見てみようと思ったのです。昨日1日かかって手に入れた行列が、そのまま載っていました=■●_(「OpenGLリファレンスマニュアル」はmanページの和訳っぽいので、当然といえば...)なんともショックな「お」でした。12:51に投稿されたエントリーのページです。ひとつ前の投稿は「流浪日誌」です。次の投稿は「夏の思い出」です。他にも多くのエントリーがあります。メインページやアーカイブページも見てください。