OpenGl(2Dのみ)でテクスチャを使用するのに問題があります
。レベル(サイズ15x15)を表示したいのですが、フィールドごとに異なる値/画像を使用できます。
私は約100の異なるフィールドタイプを持っており、レベルデザインに従って、タイプごとに異なる画像を表示する必要があります。
可能なすべてのフィールド(100ファイル)に対して単一のtga-Imageを使用すると、すべてが正常に機能しますが、現在はすべての画像を1つのファイルにまとめており、フィールドタイプに応じて、常に異なる部分を表示しています。画像。
問題:画像内の細い線が表示されないことがあり、異なるスプライトの間に、グラフィック全体を醜くする黒または灰色の線が存在することがよくあります。
この問題を簡単に解決する方法はありますか?
(たぶん、tga-imageを1つのGLuintにロードしてから、100の異なるGLunintに分割する必要がありますか?またはレンダリングを改善する設定がありますか?またはtga-imageファイル自体の解像度を変更する必要がありますか?)
これが私の画像の一部です-ファイル、すべての要素の解像度は220x220ピクセル->写真全体:2200x2200ピクセル
そしてそれがOpenGl出力です:
私は本当に何百もの画像ファイルを持ちたくありません。特に、これらすべてのファイルのロードには多くの時間がかかり、解決策があると確信しているためです。
編集:
次の設定を使用しています。
// Specify filtering and edge actions
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
EDIT2:
ここで、GL_LINEARをGL_NEARESTに変更し、テクスチャ座標にハーフテクセルを追加しました。画像間に線がなくなりました:)
しかし、まだ別の問題
があります。画像内の小さな要素(線)が正しく表示されません。
これはどのように見えるべきかです: