【问题标题】:Average color of texture in Unreal 4Unreal 4中纹理的平均颜色
【发布时间】:2015-01-05 11:27:30
【问题描述】:

所以我得到了带有场景捕获 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 不起作用),它会被黑色严重调暗。

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

【问题讨论】:

  • 你能把纹理的像素数据存入C++数组吗?
  • 我的 C++ 是非常基础的,我从不了解虚幻引擎。
  • 您也可以尝试在gamedev.stackexchange.com 上提问。可能有些人对虚幻引擎比较熟悉。
  • 另一个搜索虚幻引擎相关问题的地方是answers.unrealengine.com上的answerhub。

标签: c++ unreal-engine4


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多