我使用DevIL加载我的图片。 DevIL有一些很好的过滤功能,比如alienify(),contrast()等等。但是有一个问题。
当我将像素绘制到颜色缓冲区时,这些滤镜显示正常。当我开始使用几何体时,例如glBegin(GL_QUADS),原始纹理显示,但过滤器不显示。如何使用iluAlienify()更新纹理?
答案 0 :(得分:0)
解决方法是在纹理已存在时使用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());