单通道10位图像

时间:2011-11-25 05:45:44

标签: opengl glsl textures

OpenGL中是否有任何方法可以加载和读取10位图像?它不一定是GPU方面的最佳效率。我只想将CPU从每次转换为8位卸载,然后再将其转移到GPU上。

我注意到支持的唯一10位纹理格式是RGB10,这不是我正在寻找的。

特定于供应商的扩展程序正常。

1 个答案:

答案 0 :(得分:0)

  

我只是希望将CPU转换为每次转换为8位,然后再将其转移到GPU上。

嗯,那不可能发生。 GPU 从不进行格式转换(除了可能是混合,但这确实是DMA的一部分)。 CPU会对格式转换进行格式化,这就是为什么避免格式不匹配非常重要的原因。

因此,即使OpenGL有办法描述10位单通道数据,您仍然依靠CPU将其解码为GPU实际使用的格式(即:8位)。它只是你的代码进行转换;它是驱动程序代码。无论哪种方式,它都在占用CPU资源。

但这与您的需求无关,因为OpenGL无法上传10位单通道数据。你怎么存储那个;像素不是字节对齐的。

一般情况下,建议您尽可能离线进行此类转换,并将数据存储在最有意义的格式中。