opengl - JOGLテクスチャの問題

opengl 3d textures jogl bufferedimage

私はJOGLバインディングを学ぼうとしている最中です。チュートリアルは古くなっているようですので、私は常にそれぞれから有効なものを集めようとしています。

正方形の平面に単純なテクスチャを適用しようとすると問題が発生します。

box.pngと呼ばれる204 X 204の画像があります。

私のinit()で次のようにして、テクスチャをロードします。

        try {
            InputStream stream = getClass().getResourceAsStream("box.png");
            TextureData data = TextureIO.newTextureData(gl.getGLProfile(),
                stream, 100, 200, false, "png");
            boxTexture = TextureIO.newTexture(data);
        } catch (IOException exc) {
            exc.printStackTrace();
            System.exit(1);
        }


次に、display()で次のようにテクスチャを適用してみます。

        gl.glEnable(GL.GL_TEXTURE_2D);

        boxTexture.enable(gl);
        boxTexture.bind(gl);

        gl.glBegin(GL2.GL_QUADS);
        // Front Face
        gl.glTexCoord2f(0.0f, 0.0f);
        gl.glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Left Of The Texture and Quad
        gl.glTexCoord2f(1.0f, 0.0f);
        gl.glVertex3f(1.0f, -1.0f, 1.0f); // Bottom Right Of The Texture and Quad
        gl.glTexCoord2f(1.0f, 1.0f);
        gl.glVertex3f(1.0f, 1.0f, 1.0f); // Top Right Of The Texture and Quad
        gl.glTexCoord2f(0.0f, 1.0f);
        gl.glVertex3f(-1.0f, 1.0f, 1.0f);

        gl.glEnd();


私が失敗している理由を説明する明白な問題はありますか?
答え
私が考えることができる唯一のことは、テクスチャが2の累乗ではないということです。テクスチャのサイズを256x256に変更して、それが機能するかどうかを確認してください。グラフィックカードによっては、サポートされるかどうかが異なります(カードが古くない場合はサポートされているはずです)。
関連記事

c++ - SDL OpenGL C++の問題

java - Javaで「ウォーターフォール」シミュレーションを実装する

opengl - OpenGL描画時間

java - openGL / JOGL:一部のテクスチャが「スムーズ」にレンダリングされ、一部がレンダリングされないのはなぜですか?

opengl - OpenGLで異なる独立したオーバーラップレイヤーを使用する方法

performance - OpenGLを使用して等高線レンダリングのパフォーマンスを向上させますか?

android - OpenGLテクスチャを動的にロードおよびアンロードする必要があります

user-interface - OpenGLアプリに埋め込むには、フル機能のクロスプラットフォームGUIツールキットオプションがありますか?

opengl - DevIlライブラリを使用したテクスチャの読み込みに関する問題

opengl - リアルタイム地形照明