Render to Texture

 什么是render to texture?
说简单点,就是读回计算后的数据,再进行计算。这里数据仅限元片元数据。使用render to texture可以直接读入纹理,而且是传数据后片元处理器最快的方式。
使用pbuffer可以实现render to texutre,同时就可以取代离屏rendring(off-screnn rendering).
那什么是pbuffer呢?wgl_arb_pbuffer扩展就是实现这个功能,它的介绍如下:
它定义了像素缓存,对opengl渲染器而言,pbuffer是一个附加的看不见的渲染缓存。pbuffert等价于一个拥有同样像素格式描述符的window,同时有以下特性:
1,GDI没有对Pbuffer做任何的渲染。
2,pbuffer使用的像素格式只能是那样被ICD支持的。通用的格式是无效的。
3,如果没有足够的资源,分配pbuffer会失败的。
4, 如果显示模式发生改变,pbuffer可能会丢失。在显示模式改变后,可以使用查询来得知pbuffer的状态。
pbuffer的目的是实现在看不见的桢缓存。这些pbuffer是做为静态资源的,因为程序只为分配他们一次,而不会在rendering loop中不停的分配。(当然程序不用它们时,应该收回pbuffer的资源)。
相应的扩展函数:
http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt

原文地址:https://www.cnblogs.com/cloudseawang/p/637374.html