、あなたはピクセル完璧なアライメントを得るために、xとyで0.375の翻訳を適用する必要があります。
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, width, 0, height);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.375, 0.375, 0.0);
/* render all primitives at integer positions */
アルゴリズムは単純です:
- はおそらく、あなたの3Dシーンを描きます深度テストを有効にします。
- GUI要素が3Dのものを描画するように深度テストを無効にします。
- 使用glPushMatrixあなたの現在のモデルビューおよび投影行列を格納するために(あなたがそれらを復元したいと仮定すると - それ以外の場合は、それらの上だけで切り札を)上記のコード
- ドローで説明したように、あなたのモデルビューおよび投影行列を設定
- このようにそれをやって
あなたのプッシュ行列(あなたがそれらをプッシュ仮定)を復元するためにあなたのUIのもの
使用glPushMatrixはカメラ位置が不適切になり - 実際には、カメラが移動し、3D部品のように影響を受けるであろうと2Dオーバーレイは定位置にとどまります。私はこれがあなたが望むふるまいだと思っています。