ホームページ  >  記事  >  バックエンド開発  >  OpenGLで内部解像度スケーリングを使用して1ピクセルの線を描画する方法?

OpenGLで内部解像度スケーリングを使用して1ピクセルの線を描画する方法?

DDD
DDDオリジナル
2024-11-04 00:25:30460ブラウズ

How to Draw 1px Lines in OpenGL with Internal Resolution Scaling?

OpenGL での 1px ラインのスケーリング

問題:

内部解像度が 320x240 のゲームは、表示するためにスケーリングされます。より高い解像度 (例: 960x720)。ピクセル化されたグラフィックスは正しくレンダリングされますが、GL_LINE_LOOP で描画された線は 3 ピクセルに拡大され、不正確なピクセル アートになります。

質問:

どのようにして線を描画できますか? 960x720 のディスプレイ ビューではなく内部 320x240 ビューを使用しますか?

答え:

誤解は、「320x240 glOrtho キャンバス」の存在です。 OpenGL は、実際のウィンドウ解像度 (960x720 など) でのみレンダリングします。座標のスケーリングは単にプリミティブの終点を変換するだけで、ラスタライゼーションには影響しません。

1 ピクセルのラインを正しく描画するには:

  1. 320x240 のテクスチャを作成し、フレームバッファ オブジェクト (FBO) にアタッチします。
  2. FBO をバインドし、ビューポートをテクスチャのサイズ (320x240) に設定します。
  3. glOrtho(0, 320, 240, 0, 0, 1) を使用してテクスチャにレンダリングします。
  4. FBO のバインドを解除します。
  5. テクスチャをバインドしてウィンドウに描画し、ビューポートをウィンドウのサイズ (例: 960x720) に設定します。

オフスクリーン イメージにレンダリングすることによって実際の解像度を調整してスケールアップすると、適切なピクセル化されたラインのラスタライゼーションを実現できます。

以上がOpenGLで内部解像度スケーリングを使用して1ピクセルの線を描画する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。