使用OpenGl渲染48位rgb图像

时间:2014-09-05 06:13:36

标签: image opengl direct2d

我有一个16位灰度图像,我想在上面绘制注释。 最初我开始使用Direct 2d,后来我意识到直接2d无法渲染16位/通道

后来我搬到了Open Gl,现在我无法得出结论,Open gl支持16位/通道图像渲染。我研究了帧缓冲对象。还有关于mesa3d库的研究

1 个答案:

答案 0 :(得分:1)

是的,OpenGL支持每个组件16位的渲染目标。以下内容来自OpenGL 3.3规范,这是支持DX10级硬件的最新版本。

您可以访问www.opengl.org找到规范文档,然后单击左上角附近“文档”菜单中的“OpenGL注册表”条目。这会引导您https://www.opengl.org/registry。在该页面上,您可以查看/下载PDF格式的所有规格文档。

在3.3规范中,关键信息位于第3.9节( Texturing )第142/143页的必需纹理格式下。在纹理和渲染缓冲区颜色格式的列表中(其中“renderbuffer”表示可以渲染格式),您将找到以下内容:

  • RGBA16
  • RG16
  • R16

这些是16位/分量格式,包含4个,2个和1个组件。

仅在其下方的纹理颜色格式包括:

  • RGB16

这是16位/分量格式,包含3个组件。

因此,您询问的确切48位RGB格式结果是作为渲染目标有效。但是以使用更多内存为代价,64位RGBA格式应该可以正常工作。