因此,我通过场景捕捉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在HUD上绘制它时(因为Base Color不起作用),它会被黑色变暗。
我在这里做错了什么,如何获得平均颜色?
答案 0 :(得分:0)
如果您使用的是Windows,则可以尝试使用GetPixel(这是在Windows.h库中)来获取单个像素的RGB值。
如果您使用的是Linux,则可以尝试使用XGetPixel(对于X11)为单个像素获取相同的RGB值。
如果您想在某个区域找到像素的平均颜色(让我们假设您要覆盖的区域是正方形),您可以有两个for()循环,以及一种存储方式平均颜色的总和。您可以在for循环中递增x和y值,并跟踪像素颜色的总和。最后,您可以将此总和除以所覆盖的像素数,以获得平均值。