Opengl浮动缓冲区

时间:2011-09-05 12:05:45

标签: opengl

我正在写我的第一个光线追踪器。我想让它实时工作。 我想用opengl进行显示。 我想将我的屏幕写入浮点缓冲区并显示缓冲区。 我需要什么扩展和/或缓冲区类型?

提前致谢!

1 个答案:

答案 0 :(得分:3)

  

我正在写我的第一个光线追踪器。我想让它实时工作。

宏大!

  

我想用opengl进行显示。我想将我的屏幕写入浮点缓冲区并显示缓冲区。

OpenGL可以直接从浮动缓冲区读取,例如

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, data);

但是OpenGL可以选择与您的选择相匹配的任何内部格式。 GL_RGB内部格式可以是以某种方式存储RGB数据的任何内容。你可以具体说明你想要什么。例如,GL_RGB16告诉OpenGL您希望每个通道有16位分辨率。该实现可以选择每通道使用24位,因为这允许存储16位。但最终实现决定了它将采用哪种内部格式,基于你对它的约束。

OpenGL通过扩展GL_ARB_texture_floatGLX_ARB_fbconfig_floatWGL_ARB_fbconfig_float支持浮点帧缓冲和纹理,但由于专利问题,并非所有OpenGL实现都实现它(ATI和NVidia都可以)。