查看: 3230|回复: 3

请教FB/FBO、PB/PBO、VB/VBO之间的区别与联系?

[复制链接]

该用户从未签到

发表于 2009-2-11 20:13:21 | 显示全部楼层 |阅读模式
请教Frame Buffer与Frame Buffer Object、Pixel Buffer与Pixel Buffer Object 、Vertex Buffer与Vertex Buffer Object之间的区别和联系?它们分别位于显卡的哪个部位或实现哪些功能?在哪些情形下使用?

谢谢!

该用户从未签到

发表于 2009-2-11 21:20:40 | 显示全部楼层
您的问题可以写一本书来解答,我这里只能很简要地介绍一下。有些概念解释的恐怕不准确,请您在书店或者网络上多多搜索。
这些功能“位于显卡的哪个部位”,抱歉这个问题除了NV和ATI的核心设计人员之外,没有谁能回答您;我这种只了解简单FPGA的小人物就更无能为力了~~因为显卡的内部结构是不公开的(CPU的结构则是公开的)。所以我们的科研人员们可以号称研发出了龙芯,却无力研究“龙”显卡~~这就是人家的技术垄断吧~~

FrameBuffer(FB)可以理解为将显示设备映射到内存当中,因此用户可以通过直接操作这块内存来实现屏幕的绘制,也就是“直接写屏”的概念,它并非3D图形学所专有。

Vertex Buffer Object(VBO)可以理解为直接把顶点数据保存到显卡,在显卡中分配一处缓存用于保存顶点数据,从而大大减轻了顶点数据传输到GPU时的带宽负担。
参看:
http://oss.sgi.com/projects/ogl- ... x_buffer_object.txt

Pixel Buffer Object(PBO)扩展了VBO的功能,使得可以扩展到显卡缓存的不只是顶点数据,还包括像素片元数据,从而进一步减轻了显卡运算时的负担。
参看:
http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt

Frame Buffer Object(FBO)同样基于“直接写入目标”的概念,将帧缓存中的绘制数据直接写入纹理等目标,而非窗口系统所提供的显示缓存,因此可以避免设备切换带来的损失。广泛用于离屏渲染,渲染到纹理(RTT)等功能的实现,并逐步替代了PBO的作用。后者在工作时需要切换显示设备。
参看:
http://oss.sgi.com/projects/ogl- ... mebuffer_object.txt

Pixel Buffer和Vertex Buffer应该就是指PBO和VBO。

该用户从未签到

 楼主| 发表于 2009-2-11 22:53:18 | 显示全部楼层
谢谢版主的回复!

该用户从未签到

发表于 2009-2-12 08:44:25 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表