1

JOGL 2.0 の最新バージョンを使用しています

私のシーンは正射投影で設定されており、シーンの下部にテクスチャを追加しようとしています。テクスチャは 1600 x 100 の PNG ファイルです。

1000 x 1000 の PNG ファイルを使用するとテクスチャは正常にレンダリングされますが、1600 x 100 のテクスチャを使用すると白いボックスが表示されます。

を使用して正投影を設定しました

gl.glMatrixMode(GL2.GL_PROJECTION);
gl.glPushMatrix();
gl.glOrtho(0, 1, 0, 1, 0, 1);

gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glPushMatrix();
gl.glLoadIdentity();

を使用してテクスチャをロードしています

texture = TextureIO.newTexture(new File("image.png") ,false);

を使用してテクスチャを描画しています

gl.glEnable(GL.GL_TEXTURE_2D);
TextureCoords tc = texture.getImageTexCoords();

texture.bind(gl);

gl.glBegin(GL2.GL_QUADS);

gl.glTexCoord2d(tc.left(),tc.top());gl.glVertex2d(0.0,0.1);     
gl.glTexCoord2d(tc.left(),tc.bottom());gl.glVertex2d(0.0,0.0);      
gl.glTexCoord2d(tc.right(),tc.bottom());gl.glVertex2d(1.0,0.0);     
gl.glTexCoord2d(tc.right(),tc.top()); gl.glVertex2d(1.0,0.1);

gl.glEnd();
gl.glDisable(GL.GL_TEXTURE_2D);
4

1 に答える 1

1

白いボックスが表示される理由は、グラフィック カードがそのような大きな画像をサポートしているためです。1600 x 1600 ピクセルは大きすぎ、1600 x 100 も現代の基準では大きすぎます。1024 x 128 を使用することをお勧めします。

最大限の互換性を得るために、2 のべき乗のテクスチャを使用することをお勧めします。たとえば、32 x 64、128 x 512、さらには 1024 x 1024 などです。数値が 2 で割り切れるからといって、2 のべき乗を意味するわけではありません。2 のべき乗は、2^x のときです。

2 のべき乗数を見つけるためのヒント (電卓): [2] [*] [2] [=] [=] [=] と入力してください... [] は入力を表します。

于 2012-09-20T16:14:29.153 に答える