我有一个16位灰度图像,我想在上面绘制注释。 最初我开始使用Direct 2d,后来我意识到直接2d无法渲染16位/通道
后来我搬到了Open Gl,现在我无法得出结论,Open gl支持16位/通道图像渲染。我研究了帧缓冲对象。还有关于mesa3d库的研究
答案 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”表示可以渲染格式),您将找到以下内容:
这些是16位/分量格式,包含4个,2个和1个组件。
仅在其下方的纹理颜色格式包括:
这是16位/分量格式,包含3个组件。
因此,您询问的确切48位RGB格式结果是不作为渲染目标有效。但是以使用更多内存为代价,64位RGBA格式应该可以正常工作。