1

OpenGL ES を使用して、Android 用のかなり単純な 2D ゲームを開発しています。市場に出回っているほぼすべてのデバイスで実行したい. 私が直面している問題は、使用するテクスチャをマッピングするときです。マッピングしたい画像のサイズが対象オブジェクトと異なる場合、(画像のサイズがオブジェクトよりも大きい場合でも) 画質が低下し、ピクセル化されます。非常に鮮明な画像が必要ですが、それらを受け取る唯一の方法は、同じ寸法のテクスチャとオブジェクトを使用する場合です。しかし、この場合、十分な画面解像度をサポートするために、同じ画像を異なる寸法で表す 4,5 個のテクスチャが必要です。PNG 画像と次の GL メソッドを使用しています。

glClear(GL10.GL_COLOR_BUFFER_BIT);
glEnable(GL10.GL_TEXTURE_2D);
glEnable(GL10.GL_BLEND);
glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
//drawing happens here
glDisable(GL10.GL_BLEND);

たくさんの画像を作成するのに問題はありませんが、ゲームのサイズが大きくなります。私は何か間違ったことをしていますか、それとも OpenGL だけでは Photoshop のように画像のサイズを変更できませんか?

4

1 に答える 1

4

GL_NEAREST や GL_LINEAR などの代替サンプリング オプションを試しましたか? ( を参照glTexParameteri)。

これは opengl のせいではないと思いますが、ネイティブ解像度 (またはその倍数) ではないテクスチャを表示すると、常に正確さがいくらか失われます (画像を非解像度で再サンプリングする必要があるため)。 -ピクセル境界)。GL_LINEAR は、わずかにぼやけることを犠牲にして、ピクセル化された外観の一部を緩和する場合があります。これは、目立つ場合と気付かない場合があります。

于 2012-05-28T20:10:30.637 に答える