c++ - OpenSceneGraph 可以使用更少的字节来表示 RGB 颜色吗?

标签 c++ rgb openscenegraph

我正在使用 Vec4Array 每个顶点的颜色将大型彩色点云加载到 OpenSceneGraph 中。这是内存效率非常低的,每个顶点需要 16 字节的颜色信息,而我想存储 4 或更少。我正在处理的数据集很大,所以这是一个严重的问题。

有什么方法可以让 OpenSceneGraph 使用较低分辨率的着色(例如 24 位颜色就足够了)?

最佳答案

您可以使用顶点属性和着色器将 XYZ 和颜色编码为所需的位数,然后在着色器中将它们解码回来。但除此之外,OpenGL(和 OSG)并没有真正为您提供很大的灵活性。

许多游戏架构(游戏机和移动设备使用 16 位 5-6-5 RGB 位编码方案。

关于c++ - OpenSceneGraph 可以使用更少的字节来表示 RGB 颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14521851/

相关文章:

c++ - 将 BCD 字符串转换为十进制

c++ - boost::function<void (int)> 类型兼容,是怎么做到的?

java - 定期刷新 BufferedImage

opencv - 在OpenCV中将RGB视频转换为灰度

c++ - 在 openSceneGraph 中设计 3D 房间

c++ - is_transparent 在部分 key 方面的合法使用

c++ - QString字符删除函数

matlab - 如何在 MATLAB 中从 RGB 图像中检索亮度 channel

c++ - 将osg图像转换为opencv mat进行处理

c++ - OpenSceneGraph C++ 访问冲突读取位置 0x00421000