渲染到紋理實現方式:
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),應該能支持直接渲染到紋理吧。還未嘗試過。