Opengl 恶魔-如何将过滤器保存到我的GL_四边形纹理?

Opengl 恶魔-如何将过滤器保存到我的GL_四边形纹理?,opengl,Opengl,我用魔鬼来加载我的图像。DevIL有一些很好的过滤函数,比如alienify()、contrast()等等。不过,这也有一个问题 当我将像素绘制到颜色缓冲区时,这些过滤器显示得很好。当我开始使用几何体时,例如glBegin(GLU四边形),原始纹理会显示,但过滤器不会显示。如何使用ILualizenify()更新纹理?解决方案是使用glTexSubImage2D​()当纹理已经存在时 比如说, glBindTexture(GL_TEXTURE_RECTANGLE_ARB, m_handle);

我用魔鬼来加载我的图像。DevIL有一些很好的过滤函数,比如alienify()、contrast()等等。不过,这也有一个问题


当我将像素绘制到颜色缓冲区时,这些过滤器显示得很好。当我开始使用几何体时,例如glBegin(GLU四边形),原始纹理会显示,但过滤器不会显示。如何使用ILualizenify()更新纹理?

解决方案是使用glTexSubImage2D​()当纹理已经存在时

比如说,

glBindTexture(GL_TEXTURE_RECTANGLE_ARB, m_handle);   
iluAlienify();    // filters a texture
glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 0, 0, m_width, m_height, m_imageFormat, m_imageType, ilGetData());

应用过滤器并将结果发送到总账的代码是什么?这可能就是问题所在。使用glDrawPixels(),我只是将当前指针绘制到颜色缓冲区。对于纹理,是否有不同的功能来更新内存?啊,找到了:glTexSubImage2D​(). 资料来源:是的,但你为什么要首先更新它?为什么不先应用过滤器,然后再创建GL纹理?