gpt4 book ai didi

java - LWJGL 中的立方体贴图

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:43 24 4
gpt4 key购买 nike

我尝试将立方体映射添加到我的项目中,但出现一个错误,我不知道如何修复它当我评论这几行时,一切都很好,但是当它们在……这个错误发生时

“线程“main”中的异常 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 的最后一个参数应该是一个包含纹理像素的缓冲区。所以你应该使用 LWJGL BufferUtils 分配一个 20*20 的缓冲区,用你的纹理数据填充它,然后将这个缓冲区传递给 glTexImage2D 函数。

现在,将 int 传递给 glTexImage2D 仍然可以编译的原因是因为有一个版本接受 long 作为最新参数。它应该表示像素缓冲区对象中的偏移量以从中获取像素数据。由于您没有附加像素缓冲区对象(并且您不需要立方体贴图),LWJGL 提示道。所以基本上,将 temp.getTextureID() 作为最后一个参数调用 glTexImage2D 的“错误”版本。

关于java - LWJGL 中的立方体贴图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com