5

それで、私はこのプログラムをゲーム用に作成しましたが、もう少し自動化するための助けが必要です.

プログラムは画像を取り込み、それを表示します。OpenGLのテクスチャでこれを行っています。ゲームのスクリーンショットを撮るとき、通常は約 700x400 です。高さと幅をプログラムに入力し、空白を追加して画像のサイズを 1024x1024 に変更します (互換性を高めるために POT テクスチャにします) (元の画像は左上隅に残り、(700,400) まで移動します)。残りは空白です; 誰かがこれの用語を知っていますか?) そしてそれを私のプログラムにロードし、コーナーを調整して (0,0) から (700,400) までの部分だけが表示されるようにします.

それが私が画像の表示を処理する方法です。さて、これを自動化したいと思います。そこで、700x400 の写真を撮り、画像の幅と高さ (700x400) を取得するプログラムに渡し、空白を追加して 1024x1024 にサイズ変更してから読み込みます。

それで、これを行うことができるC++ライブラリを知っている人はいますか? 私はまだスクリーンショットを手動で取っています。

画像 (.bmp) を読み込んでテクスチャに変換するために、Simple OpenGL Image Library (SOIL) を使用しています。

ありがとう!

4

1 に答える 1

1

画像を適切に表示するために空白を追加してサイズを変更する必要はありません。実際、特に画像を .bmp 形式で保存するため、これは非常に効率の悪い方法です。

SOIL は、テクスチャをロードするときに空白スペースを自動的に追加できます。何も操作せずに、ファイルをそのままロードしてみてください。

SOIL ドキュメントから:

画像を次に大きい 2 のべき乗サイズに自動的に再スケーリングできます

GUI 要素またはスプラッシュ スクリーンの四角形のテクスチャを読み込むことができます (GL_ARB/EXT/NV_texture_rectangle が必要です)。

とにかく、画面にピクセルを表示するためにテクスチャを使用する必要はありません。レンダリングにシェーダーを使用していないと思います-すべてが固定パイプラインを通過する場合、glDrawPixels機能があり、はるかに単純になります。SOIL 呼び出しを に変更することを忘れないでください SOIL_load_image

于 2012-06-13T09:58:28.430 に答える