Средний цвет текстуры в Unreal 4

Итак, я получаю изображение текущей сцены с захватом сцены 2d и могу использовать его с целью рендеринга. Теперь, возможно ли получить средний цвет этой текстуры, используя только чертежи (или очень базовый 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 (поскольку Base Color не работает), он сильно затемняется черным.

Что я здесь делаю не так и как получить средний цвет?


person sollniss    schedule 05.01.2015    source источник
comment
Можете ли вы получить пиксельные данные текстуры в массив C ++?   -  person HolyBlackCat    schedule 12.01.2015
comment
Мой C ++ очень прост, и я никогда не заглядывал под капот нереального.   -  person sollniss    schedule 12.01.2015
comment
Вы также можете попробовать задать вопрос на gamedev.stackexchange.com. Возможно, есть люди, более знакомые с Unreal Engine.   -  person TrevorPeyton    schedule 14.01.2015
comment
Еще одно место для поиска вопросов, связанных с Unreal Engine, - это answerhub на answers.unrealengine.com.   -  person Maurice    schedule 14.01.2015


Ответы (1)


Если вы используете Windows, вы можете попытаться использовать GetPixel (он находится в библиотеке Windows.h), чтобы получить значение RGB для одного пикселя.

Если вы используете Linux, вы можете попытаться использовать XGetPixel (для X11), чтобы получить то же значение RGB для одного пикселя.

Если вы хотите найти средний цвет пикселя в некоторой области (предположим, что область, которую вы хотите покрыть, представляет собой квадрат), у вас может быть два цикла for () и способ сохранить сумму среднего цвета. Вы должны увеличивать значения x и y в цикле for и отслеживать сумму цветов пикселей. В конце вы разделите эту сумму на количество покрытых пикселей, чтобы получить среднее значение.

person Christopher Snell    schedule 16.01.2015