На узле SpriteKit я запускаю фрагментный шейдер (SKShader), чтобы показать анимацию (canvasNode.fillShader = shader
).
В какой-то момент я хочу увеличить один из унифицированных параметров (transitionProgress
, между 0 и 1), чтобы изменить стадию анимации.
В настоящее время я просто установил значение от 0 до 1.
shader.uniforms = [
SKUniform(name: "u_transitionProgress", float: 1)
]
Однако я бы предпочел переход (например, линейное увеличение 0, 0,001, 0,002, ..., 0,999, 1) для плавного перехода между этими значениями.
Поскольку я не могу хранить в шейдере какие-либо значения, которые я мог бы увеличивать при каждом выполнении, каков наилучший подход для достижения этого эффекта? (или это единственный способ выполнить строки выше снова и снова с небольшим увеличением значений?)