Единственное, о чем я могу думать, - это очень запутанное - использование режима GL_COMBINE texEnv для создания точечного продукта на пиксель, хотя я не могу найти маршрут, который не требует промежуточного FBO и сокращения Точность ваших RGB-каналов до 7 бит за штуку. Таким образом, вы используете функцию dot3, которая обычно предназначена для освещения, но поскольку вы не хотите использовать отрицательные значения, вы получаете половину доступного диапазона. По сути, вы просто расставите все точки с помощью вектора (0,299, 0,587, 0,114) и выведите его на все три канала.