С помощью решения @ rickster в этом посте: SceneKit - текстуры свойств материала Crossfade , я пытаюсь реализовать анимацию на 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' !
Когда я изменяю значение для fadeFactor с функцией setValue , все нормально:
node.geometry?.firstMaterial?.setValue(NSNumber(value: 0.5), forKey: "fadeFactor")
Если у соменона есть решение или он может дать мне пример, это будет здорово.
Заранее спасибо.