3

フロートではなく整数のピクセル単位の位置に従って、ウィンドウにピクセルをプロットする必要があります。たとえば、0, 0 をプロットすると、ウィンドウの左上隅になり、1,1 は 0、0、および 0 の下の 1 ピクセルの右に 1 ピクセルになります。 I グリッドのようなものにする必要があります。0、0 が通常のように原点であるかどうかは気にしませんが、1 を最大値、-1 を最小値などとせずに、ピクセル単位でカウントする必要があります。

私がすでに試したこと:プロットのためにこの Window Width ^-1 * X のようなことができると思っていましたが、実際にはうまくいきますが、常にではありません。とにかく、これを行うにはどうすればよいですか?X位置/画面幅も実行しましたが、これが最適に機能しますが、10ピクセルごとに機能しなくなります。

4

1 に答える 1

7

まず第一に、OpenGL はすべての場合においてピクセル パーフェクトな配置を保証するわけではありません。ただし、非常に一般的な落とし穴があります。ピクセル座標を使用すると、各ピクセルの中心に整数座標がありません。

これは、OpenGL ビューポートの左下のピクセルの図です。

+Y
^
|     
+-----+
|     |
|  o  |
|     |
+-----+---> +X

各ピクセルの幅と高さが 1 単位になるようにデータを変換すると、ピクセルの中心は になり(0.5, 0.5)ます。GL_POINTそのピクセルでを描画すると、座標は になります(0.5, 0.5)。長方形を描くと、 から に移動(0,0)(1,1)ます。そこに垂直線を引く場合、その線の x 座標は 0.5 になります。

など。

于 2013-03-26T02:36:53.700 に答える