Modifying pixel RGBA values of texture using glTexSubImage2D does not update the texture
我有一个OpenGL纹理,我想在运行中更改纹理中像素的RGBA值。我想在CPU端进行修改。我想创建一个函数,以将所选坐标中纹理中的像素更改为所选RGBA值。
我尝试了以下操作:
1 | glTexSubImage2D(GL_TEXTURE_2D,0,x,y,1,1,GL_RGBA,GL_UNSIGNED_BYTE,data); |
其中
将指定坐标中纹理的像素颜色更改为指定颜色。
您必须创建一个直接缓冲区,才能通过
提交数据
我建议创建一个
1 2 3 4 | ByteBuffer buffer = ByteBuffer.allocateDirect(data.length); buffer.put(data); buffer.flip(); glTexSubImage2D(GL_TEXTURE_2D,0,x,y,1,1,GL_RGBA,GL_UNSIGNED_BYTE,buffer); |
如果
1 | glTexSubImage2D(GL_TEXTURE_2D,0,x,y,1,1,GL_RGBA,GL_UNSIGNED_INT,data); |