2

所以我得到了带有场景捕获 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 是纹理第一个像素的颜色。当我通过 Emissive Color(因为 Base Color 不起作用)在 HUD 上绘制它时,它会被黑色严重调暗。

我在这里做错了什么以及如何获得平均颜色?

4

1 回答 1

-2

如果您使用的是 Windows,您可以尝试使用 GetPixel(位于 Windows.h 库中)来获取单个像素的 RGB 值。

如果您使用的是 Linux,您可以尝试使用 XGetPixel(用于 X11)为单个像素获取相同的 RGB 值。

如果您想找到某个区域上像素的平均颜色(假设您要覆盖的区域是一个正方形),您可以有两个 for() 循环,以及一种存储平均颜色总和的方法。您将在 for 循环中增加 x 和 y 值并跟踪像素颜色的总和。最后,您可以将此总和除以覆盖的像素数以获得平均值。

于 2015-01-16T20:59:04.960 回答