2013-03-18 2 views
0

Возможно ли рисовать текстуру RGB в оттенках серого без использования фрагментарных шейдеров, используя только фиксированный конвейер openGL?Как визуализировать оттенки серого без использования фрагментарных шейдеров? (OpenGL)

В противном случае мне пришлось бы создать две версии текстуры, одну по цвету и одну в черном и белом.

ответ

1

Я не знаю, как это сделать с текстурой RGB и конвейером с фиксированной функцией.

Если вы создаете текстуру из исходных данных RGB, но указываете внутренний формат как GL_LUMINANCE, OpenGL преобразует цветовые данные в оттенки серого для вас. Используйте стандартный белый материал и режим MODULATE.

Надеюсь, это поможет.

+0

IIRC OpenGL будет просто использовать R-канал для яркости, если вы это сделаете (или он может использовать невзвешенное среднее значение). Я должен был бы изучить спецификацию, но результаты, вероятно, теперь желают. – datenwolf

0

Texture environment combiners не могут выполнять точечный продукт без, выполняющий операцию масштабирования/смещения. То есть, он всегда притворяется, что значения [0, 1] кодируются как значения [-1, 1]. Поскольку вы не можете отключить это, вы не сможете сделать правильный точечный продукт.

Смежные вопросы