gpt4 book ai didi

iOS:通过在图像之间混合来平滑按钮发光效果

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:44 26 4
gpt4 key购买 nike

我正在创建一个需要能够发光到不同程度的自定义按钮

diamonds

我如何使用这些图片制作一个按钮,当它被按下时钻石会“发光”,并让这种发光逐渐变暗回到惰性状态?

我也想制作几种不同颜色的钻石...我希望从这里展示的相同图片生成所有不同颜色的钻石。

我想了解可用的基本方法,详细程度足以让我了解每个方法并决定采用哪条路径...


到目前为止我纠结的努力...(我将删除所有这些,或者随着解决方案的展开将其移动到可能的几个答案中...)

我可以看到 3 个潜在的解决方案路径:

  • GL
    看起来 GL 拥有对流程进行完全细粒度控制所需的一切,尽管核心图形公开的功能非常接近,并且这将节省散布在一堆源文件中的数百行代码,这似乎是一个对于这样一个基本任务来说有点荒谬。

  • 核心图形核心动画来完成混合

    chroma-key masking文档接着说

    Anything underneath the unpainted samples, such as the current fill color or other drawing, shows through.

    所以我可以使用色度键 mask 左侧图像,设置 {0,0,0} 即黑色作为键。

    这至少确保了透明背景,现在我必须努力让它变成黄色而不是灰色。

    所以也许我可以开始为我的图像上下文设置黄色背景颜色,然后使用一些 CGContextSetBlendMode(...) 将钻石印在黄色上,然后使用色度键 mask 来获得透明背景

    好的,这至少涵盖了在屏幕上获取基本的未点亮图像

    现在我可以使用一些混合模式覆盖 Shiny 的图像,也许我可以将它保持在当前的灰度状态,这只会增强原始图像的颜色

    唯一的问题是它有很多繁重的实时混合

    所以也许我可以预先计算动画中的每个图像...这看起来越来越困惑...

  • Cocos2D

    如果这允许我将混合模式设置为加法混合,那么我可以使用适当的 Alpha 设置将发光图像合成到原始图像上。

最佳答案

通过大量文档挖掘后,最佳解决方案似乎是使用核心图形函数将源图像放入单个 2 分量 GL 纹理中,然后使用 GL 在它们之间进行混合。

我需要将一个统一的值 glow_factor 传递给着色器

显而易见的解决方案似乎只是使用

r,g,b = in_r,g,b * { (1 - glow_factor) * inertPixel + glow_factor * shinyPixel }

(其中 inertPixel 是惰性钻石等的适当像素)...

看起来我也可以制作自己的 Spark 并将它们添加到顶部;无论 gem 的特征颜色如何, gem 都应该闪耀着白色光芒。

关于iOS:通过在图像之间混合来平滑按钮发光效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com