2011-12-23 5 views
1

私は作っているゲームのすべてをレンダリングするのにLWJGLを使い、背景をレンダリングするのは大丈夫ですが、ディスプレイのフルサイズより小さいものをレンダリングすると、ランダムな線が表示され、画像が傾きます。ここにはスクリーンショットの写真があります。LWJGLがテクスチャを正しく描画しない?

分割線は、全体の3分の1と左側の線を参照してください。

http://i.stack.imgur.com/6O9dI.png

そして、ここに私のコードです。

 ImageLoader.STAT_BAR.bind(); 

    GL11.glBegin(GL11.GL_QUADS); 
     GL11.glTexCoord2f(0,0); //TOP LEFT 
     GL11.glVertex2f(0,0); 
     GL11.glTexCoord2f(1,0); //TOP RIGHT 
     GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(),0); 
     GL11.glTexCoord2f(1,1); //BOTTOM RIGHT 
     GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(), ImageLoader.STAT_BAR.getTextureHeight()); 
     GL11.glTexCoord2f(0,1); //BOTTOM LEFT 
     GL11.glVertex2f(0, ImageLoader.STAT_BAR.getTextureHeight()); 
    GL11.glEnd(); 

PS。 ImageLoadはイメージを取得してロードするためのクラスです。非常にシンプルで、すべての画像に適用されます。それは動作していないレンダリングだけです。

EDIT:2IにGL11.glVertex2fを変更し、それはまだdoesntの仕事さえ:/

答えて

1

申し訳ありませんが、私は問題が何であるか絶対にわかりません。私は残念なことに、後でそれを再現するように見えません。しかし、私はそれが次のいずれかによって解決されなければならない考え出し:OpenGLは、画像ように大きく依存している

  • サポートされていない画像サイズ

ときの幅/高さ、その解像度の幅と高さは=(2のべき乗ですn * 2)。画像ファイルがその仕様に準拠していない場合、LWJGLは奇妙な動作をする可能性があります。また、画像ファイルが盛り上がってしまう心配もありません。これは、テクスチャ入力ではなく、頂点入力に依存します。

  • サポートされていないイメージ拡張

はノンインターレースPNGファイルとしてイメージファイルを保存してください。 Slick_Util、またはイメージファイルの読み込みに使用するものは、それに与えるイメージを完全にサポートしていない可能性があります。

  • 補正は最後の手段として

ヒントは、あなたの初期化コードに次のコード行を追加することができます。

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); 

がうまくいけば、これらのヒントの一つは、あなたを助けます。

+0

ありがとうございました!画像が2の直接の威力ではなかったことが判明しました。画像が画面に重なるようになりましたが、あなたはそれを伝えることはできません.D –

関連する問題