Opengl 浮动缓冲区
我正在编写我的第一个光线追踪器。我想让它实时工作。 我想用opengl来显示。 我想将屏幕写入浮点缓冲区并显示缓冲区。 我需要什么扩展和/或缓冲区类型?
提前致谢!
I'm writing my first ray tracer. I want to make it work in real-time.
I want to use opengl for display.
I want to write my screen to floating point buffer and display the buffer.
What extension and/or buffer type I need?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
雄心勃勃!
OpenGL 可以直接从浮点缓冲区读取,例如
,但 OpenGL 可以选择与您的选择相匹配的任何内部格式。 GL_RGB 内部格式可以是任何可以以某种方式存储 RGB 数据的格式。您可以具体说明您想要什么。例如,GL_RGB16 告诉 OpenGL 您想要每个通道 16 位分辨率。该实现可以选择每个通道使用 24 位,因为这允许存储 16 位。但最终实现会根据您对其施加的约束来决定它将采用哪种内部格式。
OpenGL 通过扩展
GL_ARB_texture_float
、GLX_ARB_fbconfig_float
、WGL_ARB_fbconfig_float
支持浮点帧缓冲区和纹理,但由于专利问题,并非所有 OpenGL 实现都实现它( ATI 和 NVidia 都这样做)。Ambitious!
OpenGL can read from float buffers directly, e.g.
But OpenGL may choose any internal format that matches your selection. GL_RGB internal format can be anything that can somehow store RGB data. You can be specific about what you want. For example GL_RGB16 tells OpenGL you want 16 bits resolution per channel. The implementation may choose to use 24 bits per channel, as this allows for 16 bit to be stored. But ultimately the implementation decides, which internal format it will be, based on the constraints you put upon it.
Floating point framebuffers and textures are supported in OpenGL through extensions
GL_ARB_texture_float
,GLX_ARB_fbconfig_float
,WGL_ARB_fbconfig_float
, but due to patent issues not all OpenGL implementations implement it (ATI and NVidia do).