OpenGL中的帧缓冲区对象和像素缓冲区对象之间有什么区别?
FBO和PBO的区别是什么?我应该使用哪一个进行屏幕外渲染?A(帧缓冲区对象)是一个可以渲染除默认帧缓冲区或屏幕之外的图像的目标 (像素缓冲区对象)允许在设备之间异步传输像素数据。如果在等待像素传输时可以执行其他操作,则这有助于提高渲染时的总体性能 我会读到: 苹果发布了两个非常好的消息 演示PBO和PBO的示例代码 FBO。即使这些是 Mac专用,作为示例代码 在任何一个排上都很好,因为PBOs和 FBO是OpenGL扩展,而不是 窗口系统扩展 那么这些物体是什么呢?这是 情况: FBO和PBO的区别是什么 一个更好的问题是它们有什么相似之处。他们唯一相似的地方就是他们的名字 A(注意大小写:framebuffer是一个单词,而不是两个)是一个包含多个图像的对象,这些图像可以用作渲染目标 A是:OpenGL中的帧缓冲区对象和像素缓冲区对象之间有什么区别?,opengl,Opengl,FBO和PBO的区别是什么?我应该使用哪一个进行屏幕外渲染?A(帧缓冲区对象)是一个可以渲染除默认帧缓冲区或屏幕之外的图像的目标 (像素缓冲区对象)允许在设备之间异步传输像素数据。如果在等待像素传输时可以执行其他操作,则这有助于提高渲染时的总体性能 我会读到: 苹果发布了两个非常好的消息 演示PBO和PBO的示例代码 FBO。即使这些是 Mac专用,作为示例代码 在任何一个排上都很好,因为PBOs和 FBO是OpenGL扩展,而不是 窗口系统扩展 那么这些物体是什么呢?这是 情况: FBO和PB
他们一点都不一样。我想强调一点 FBO它不是内存块。我认为它看起来像指针的结构。必须将纹理附加到FBO才能使用它。附加纹理后,现在可以绘制到该纹理以进行屏幕外渲染或第二遍效果
struct FBO{
AttachColor0 *ptr0;
AttachColor1 *ptr1;
AttachColor2 *ptr2;
AttachDepth *ptr3;
};
另一方面,PBO是内存块“用于保存内存类型的块”。尝试将其视为x大小的malloc,然后可以使用memcpy将数据从它复制到纹理/FBO或它”
- 为什么要使用PBO
创建中间内存缓冲区以与主机内存接口,而不是停止OpenGL绘图将纹理上载到主机或从主机上载纹理。我们只希望这比纯链接答案和(不幸被接受的)错误答案更高。@ChristianRau:我检查过了,OP似乎仍然是常规的。所以希望它能被接受。