问题描述
- opengl中如何进行离屏渲染?如何创建比屏幕大的帧缓冲区?
-
我现在需要要创建一个9倍于屏幕大小的缓冲区,一次性渲染一个九倍当前屏幕大小的场景然后使用glReadPixel读取这个场景截图的数据(如果我创建的帧缓冲区没有屏幕大,我就没法从缓冲区中使用glReadPixel函数读取到面积足够大的图片,即使我读取的宽度和高度设置为屏幕的3倍,但是读取出来的超出屏幕的范围都是glClear清除出来的颜色,实际的场景没法被渲染到超高屏幕的范围)首先,这个问题是我在负责一个老项目时候遇到的,这个老项目的OpenGL为1.3的,所以好多新函数没法应用,但是从代码中了解到
wglCreatePbufferARB函数可以创建给定大小的缓冲区。
但是在使用wglCreatePbufferARB创建缓存区时发现缓冲区的宽度和长度不能无限大,比如我创建一个10000*10000大小的缓冲区,就会报错希望可以得到此函数的详细文档,但是好多搜索引擎和网站都看过了 找不到相关的描述,只是一些示例代码中有提及。
或者大家可以给我个建议 如何进行离屏渲染(要能渲染到比当前屏幕大小还要大的区域,而且要是版本不高于1.3中可以应用的方案)
希望在这里可以找到答案,大家可以发挥想象力,帮我出点点子,谢谢!
(由于不经常玩CSDN所以没有C币~解决后必有重谢,可以送小礼物哦,哈哈)
解决方案
http://blog.csdn.net/yangdelong/article/details/2500956
解决方案二:
使用FBO,并且与纹理关联,可绘制到纹理,也可与渲染缓冲区关联,即离屏渲染
时间: 2024-10-01 08:10:06