OpenGL中的纹理压缩是由CPU还是GPU完成的?

时间:2014-10-21 15:54:06

标签: c++ opengl textures

我正在编写一个简单的C ++ / OpenGL程序,它可以加载obejcts形式的.obj文件。我使用纹理压缩,但它有点慢。纹理压缩是由CPU还是GPU完成的? 如果CPU我可以进行多线程加载和压缩。

这是代码:

 if(format==GL_RGBA || format==GL_BGRA) 
        {
            if(transparency)    internalformat=GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;    
            else internalformat=GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
        }

        if(format==GL_RGB || format==GL_BGR) internalformat=GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
        if(format==GL_INTENSITY) internalformat=GL_COMPRESSED_INTENSITY;
.................
glGenTextures(1, &txtid[position]);
        glBindTexture(GL_TEXTURE_2D, txtid[position]);
        glTexImage2D(GL_TEXTURE_2D,0,internalformat,txt->w,txt->h,0,format,GL_UNSIGNED_BYTE,txt->pixels);

0 个答案:

没有答案