- 51.User
- 你好,我看了您博客,对FBO有些问题,网上找关于FBO的文章大都会提到RenderBuffer Object,但是都只提到了初始化和绑定,没有读取类的操作信息,然后再其他地方找到了说RenderBuffer Object是个简单的图像,没有MipMap,可与Tex2D转换.
但是这样直接用Texture不就行了吗,为什么还会有RenderBuffer Object 这个扩展,这个对象是在什么时候才能用到?要读取的话还要传换成Texture吗?还有,加入我想渲染Depth Buffer,这个RenderBuffer Object和Texture可以同时绑定到深度通道吗,会不会冲突?
谢谢zwqxin 于 2012-10-5 11:15:51 回复RENDER BUFFER,如其名就是一个可渲染的缓冲区对象。比起Texture纹理,它是更一般意义上的离线缓冲区。但是它不像纹理那样可以直接拿来用,你要读取渲染到这个Buufer里的图像,需要通过glReadPixels或glMapBufferRange之类的方式获取数据(另外还可配合PBO来隐藏读取操作的消耗)。当然你也可以把它的数据交给另外的纹理,但是这一来最开始就没有使用RenderBuffer的意义了(比起Render to Texture更轻便)。
所以如果对于FBO,如果你不需要在后续操作中获取里面的任何数据,那么应该更倾向于使用RenderBuffer来存储颜色/深度之类信息。最后的那个问题,我不太记得自己以前有没试验过,但是个人而言只要设置好目标DEPTH_COMPONENT的话,应该是不会冲突的,但是一般而言既然有Texture这个需求就没啥必要另外再渲染到一个renderbuffer里了…… - 2012-10-3 1:46:44 回复该留言
- 52.nomorefancy
- 楼主,你太强大了,我要把你的文章全都看完
- 2012-10-26 16:10:43 回复该留言
- 53.nomorefancy
- 楼主,我要也搞个你这样的博客,跟你共同学习!
- 2012-10-26 17:03:26 回复该留言
- 54.青蛙
- 博主,为什么这个主页要是点进去看全文,都显示不出来啊?zwqxin 于 2012-11-6 23:56:17 回复你用的是什么浏览器啊?是不是还没有缓冲完?我也觉得服务器那边越来越慢的说。青蛙 于 2012-11-15 10:10:17 回复360的浏览器。
- 2012-11-6 10:48:43 回复该留言
- 56.ll
- 博主你好,刚看了下你的基础的shadowmap例子的源码,受益匪浅,但发现有个问题:阴影在竖直的面上投影还正常,但在水平面的投影会发生变形和位移,请问这个是否有什么解决办法?
- 2012-12-10 17:01:01 回复该留言
- 58.ll
- 把灯光拉远是效果会很明显。或者是我移植的时候无意中改动了某个地方?zwqxin 于 2012-12-10 22:31:17 回复额不记得了,貌似是bias和分辨率的问题了有空再看~~
- 2012-12-10 17:08:44 回复该留言
- 59.ll
- 你好,问题好像解决了,对于shadow demo1的shader,貌似把以下两句话从顶点shader移动到片元shader中效果就正常了:
shadowTexcoord = texcoord / texcoord.w;
shadowTexcoord = 0.5 * shadowTexcoord +0.5;
这是否是因为必须将纹理坐标在vs与ps之见插值后才能在ps中进行上述这两个计算呢?
耽误你时间了,呵呵~ - 2012-12-11 21:03:16 回复该留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。