【问题标题】:Animate shader value动画着色器值
【发布时间】:2019-06-10 15:45:37
【问题描述】:

通过 @rickster 在这篇文章中给出的解决方案:SceneKit - Crossfade material property textures,我尝试在 fadeFactor 上实现动画。我尝试了很多事情,但没有按预期工作。

这是我的一些代码:

  • 对于着色器:

    "uniform float fadeFactor;"

  • 迅速:

    let anim = CABasicAnimation(keyPath: "fadeFactor")
    anim.fromValue = NSNumber(value: 0.0)
    anim.toValue = NSNumber(value: 1.0)
    anim.duration = duration
    anim.repeatCount = .infinity
    node.geometry?.firstMaterial?.addAnimation(anim, forKey: "fadeFactor")
    

当我执行我的代码时,fadeFactor 属性上没有动画。 我做错了什么?
在 CABasicAnimation 中,我为 keyPath 尝试了不同的值:geometry.firstMaterial.diffuse.contents、fadeFactor 等。
我找不到必须为参数 'keyPath''forKey' 提供哪个值!

当我使用 setValue 函数更改 fadeFactor 的值时,没关系:

node.geometry?.firstMaterial?.setValue(NSNumber(value: 0.5), forKey: "fadeFactor")

如果有人有解决方案或可以给我一个例子,那就太好了。

提前致谢。

【问题讨论】:

    标签: ios swift animation glsl scenekit


    【解决方案1】:

    好的,清理项目后终于可以工作了!!!
    项目 -> 清理构建文件夹

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 2020-04-05
      • 1970-01-01
      • 2013-12-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多