渲染到纹理实现方式:
1. 渲染到帧缓存,然后用glReadPixels将需要的部分读入到客户内存,然后使用glTexImage()函数创建纹理
缺点:比较慢
2.渲染到帧缓存,然后使用glCopyTexImage() 直接从帧缓存创建纹理
3.渲染到帧缓存,然后使用glCopyTexSubImage() 从帧缓存中读出需要的部分更新纹理的一部分
4.使用 pbuffer,直接渲染到纹理
需要的扩展:
WGL_ARB_extensions_string
WGL_ARB_render_texture
WGL_ARB_pbuffer
WGL_ARB_pixel_format
只可以在windows系统上使用
每一个pbuffer在不同的OpenGL上下文中工作,管理麻烦
pbuffer之间切换开销很大
5. 使用 framebuffer object (FBO)扩展:
GL_EXT_framebuffer_object
6.OpenGL 2.0的新特性之一就是多重渲染目标(Multiple Render Targets),应该能支持直接渲染到纹理吧。还未尝试过。