レトロな 2D ピクセル グラフィックスをレンダリングする場合、ピクセル化には低い内部解像度を使用し、出力をより大きな解像度にスケーリングするのが一般的です。画面。ただし、GL_LINE_LOOP プリミティブをスケーリングすると、ピクセル化されない線が発生する可能性があります。
OpenGL の glOrtho 関数は、原点が左下隅にあり、右上。 glOrtho(0, 320, 240, 0, 0, 1) を呼び出すことで、320x240 の仮想キャンバスを定義します。
ただし、glViewport 関数を使用して出力を拡大縮小する場合、仮想キャンバスのサイズは物理的に変更されません。 。代わりに、プリミティブはフル出力解像度 (960x720 など) で描画され、その後拡大されます。この結果、ピクセル化された四角形は生成されますが、線はピクセル化されません。
推奨される解決策は、必要な仮想解像度 (この場合は 320x240) のテクスチャにレンダリングしてから、そのテクスチャを描画することです。希望の出力解像度 (960x720) でウィンドウに表示されます。これにより、プリミティブが仮想解像度でレンダリングされ、ピクセル化された外観が維持されます。
このアプローチにより、線が仮想解像度で描画され、より高い解像度にスケールアップされた場合でもピクセル化された外観が維持されます。出力解像度。
以上がOpenGL でスケーリングするときにピクセル化された線を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。