【问题标题】:C++ SFML Sprite.setColor(sf::Color) DetailsC++ SFML Sprite.setColor(sf::Color) 详细信息
【发布时间】:2013-07-23 05:49:57
【问题描述】:

我正在尝试在 SFML 中复制在纯色图像上具有半透明颜色层的效果。我有我的基本图像,它在 SFML 中渲染得很好。在我的图像编辑器中,我在图像上有许多层来创建图像的各种彩色实例。例如,我使用的第一个红色图层的 RGBA 值为 222、14、14、128。当我在基础图像的精灵上使用 SFML 的 setColor 方法(使用相同的 RGBA 代码)时,最终图像的颜色是不一样,而且看起来不那么充满活力。我是否误解了该方法的用法,或者这是一些错误?有没有办法让我的图像编辑器给我提供相同的颜色?

【问题讨论】:

    标签: c++ colors render sfml


    【解决方案1】:

    SFML 的 setColor 函数使用乘法。如果您使用纯白色 (255,255,255) 的颜色,精灵看起来会一样。当您在图像编辑器中将颜色描述为不太“充满活力”时,我怀疑您的图层使用的是添加颜色,而不是乘法。

    【讨论】:

    • 我发现问题出在 alpha 级别;它将实际图像的 alpha 设置为 128,并且不只是像我预期的那样在该 alpha 值的原始图像之上创建颜色叠加。因此,当它半透明渲染时,它会与它背后的颜色混合。
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 2018-06-27
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 2016-01-02
    相关资源
    最近更新 更多