我刚开始使用lwjgl,并在屏幕上绘制了一个纹理 但是,我想定期更改此纹理中的像素数据
我目前通过更改我的BufferedImage,然后将其转换为纹理并在openGL中重绘它来实现此目的
我正在使用示例纹理加载器:http://lwjgl.org/wiki/index.php?title=Examples:SpaceInvaders_TextureLoader
我觉得我不应该经常重新加载纹理,而且我害怕通过在游戏循环中调用convertImageData函数来浪费资源 我该如何避免这种情况?
编辑:好吧,我通过存储ByteBuffer并简单地修改它让我自己更开心,接着是:
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,800,600,0,GL_RGBA,GL_UNSIGNED_BYTE,缓冲区);
而不是做整个转换。我觉得这很好
答案 0 :(得分:0)
您可以使用FBO(帧缓冲区对象)渲染到纹理。
答案 1 :(得分:0)
在我看来,你想要为纹理设置动画。这可以使用spritesheet轻松完成;如果可能,将所有动画阶段绘制到纹理上,线性地绘制,然后根据要使用的精灵动画调制纹理坐标。