Итак, я получаю изображение текущей сцены с захватом сцены 2d и могу использовать его с rendertarget.
Теперь возможно ли получить средний цвет этой текстуры, используя только чертежи (или очень базовый C ++)?
Если это невозможно, я подумал о том, чтобы сильно размыть текстуру и просто прочитать цвет центрального пикселя. Это будет выполнимо?
Мне нужен цвет для дальнейшего материала в формате RGB возможно.
HUD:
http://i.imgur.com/e1ROR85.png
Материал: http://i.imgur.com/2yiqeii.png
Результат: http://i.imgur.com/uZS1pbi.png
Материал в настоящее время имеет базовый белый цвет для тестирования, так как вы заметили, что цвет HUD все еще черный.
MaterialExpressionTextureSampleParameter2D_6 — это цвет первого пикселя текстуры. Когда я рисую это на HUD через Emissive Color (так как базовый цвет не работает), он сильно затемняется черным.
Что я тут не так делаю и как получить средний цвет?
Если вы используете Windows, вы можете попытаться использовать GetPixel (это находится в библиотеке Windows.h), чтобы получить значение RGB для одного пикселя.
Если вы используете Linux, вы можете попытаться использовать XGetPixel (для X11), чтобы получить то же значение RGB для одного пикселя.
Если вы хотите найти средний цвет пикселя по некоторой области (предположим, область, которую вы хотите покрыть, это квадрат), у вас может быть два цикла for () и способ хранения суммы среднего цвета. Вы должны увеличивать значения x и y в цикле for и отслеживать сумму цветов пикселей. В конце вы бы поделили эту сумму на количество пикселей, чтобы получить среднее значение.