2011-02-01 11 views
3

キューブマッピングをプロジェクトに追加しようとしましたが、修正方法を知らないエラーが1つ発生します これらの数行をすべてコメントしてもうまく動作しますが、メインcubemap in LWJGL

「スレッドの例外 『』 org.lwjgl.opengl.OpenGLException:ピクセル開梱バッファオブジェクトが無効になっているときのオフセットを使用することはできません」

GL11.glDisable(GL11.GL_TEXTURE_2D); 
    GL11.glEnable(GL13.GL_TEXTURE_CUBE_MAP); 
    GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); 

    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_X,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 
    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_NEGATIVE_X,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 
    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_Y,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 
    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 
    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_Z,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 
    GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,0,GL11.GL_RGBA,20,20,0,GL11.GL_RGBA,GL11.GL_UNSIGNED_BYTE,temp.getTextureID()); 

は間違っどんな事がありますか? このエラーを修正するにはどうすればよいですか?

はglTexImage2Dの最後の引数は、テクスチャのピクセルを含むバッファーでなければなりませんので、これはお時間を

答えて

4

をお願いします。したがって、LWJGL BufferUtilsを使用して20 * 20バッファを割り当て、テクスチャデータを入力してからこのバッファをglTexImage2D関数に渡す必要があります。

glTexImage2Dにintを渡す理由は、最新の引数としてlongを受け入れるバージョンが1つあるためです。そして、それは画素データをフェッチするために画素バッファオブジェクト内のオフセットを表現することになっています。ピクセルバッファオブジェクトが添付されていないので(そしてキューブマップには必要ないので)、LWJGLは不平を言います。 したがって、基本的にtemp.getTextureID()を最後の引数として設定すると、間違ったバージョンのglTexImage2Dが呼び出されます。

関連する問題