Может ли OpenSceneGraph использовать меньше байтов для цветов RGB?

Я загружаю большое цветное облако точек в OpenSceneGraph, используя Vec4Array для каждой вершины для цветов. Это очень неэффективно для памяти, требуя 16 байтов информации о цвете на вершину, где я хотел бы хранить 4 или меньше. Наборы данных, с которыми я имею дело, огромны, поэтому это серьезная проблема.

Есть ли способ заставить OpenSceneGraph использовать цветопередачу с более низким разрешением (например, 24 бита цвета более чем достаточно)?


person SmacL    schedule 25.01.2013    source источник


Ответы (1)


Возможно, вы могли бы использовать атрибуты Vertex и шейдер для кодирования XYZ и цвета в столько битов, сколько хотите, а затем декодировать их обратно в шейдере. Но кроме этого OpenGL (и OSG) на самом деле не дает вам большой гибкости.

Многие игровые архитектуры (консоли и мобильные устройства) используют 16-битную схему кодирования 5-6-5 RGB.

person XenonofArcticus    schedule 26.01.2013
comment
Спасибо за ответ. В руководстве для начинающих по OSG приведен пример шейдера GLSL, поэтому расшифровка атрибута цвета с помощью шейдера кажется заслуживающей изучения (и дает мне повод узнать больше о шейдерах). - person SmacL; 26.01.2013