【发布时间】:2021-01-31 22:35:14
【问题描述】:
我用以下节点创建了一个脉动闪亮的效果:
Abs(Time * speed) => sine
我有一个介于 0 和 1 之间的振荡值,但问题是该值可能从 0 和 1 之间的任何值开始,具体取决于时间值。
我正在尝试找出一种方法,可以在着色器之外获取该值,以便脚本可以将属性设置为偏移:
float offset = GetTimeFromShader();
material.SetFloat("_Offset", offset);
着色器最终得到:
Abs((Time - offset) * speed) => sine
这将确保脉动从 0 开始。
另一种可能性是在着色器模拟中创建一个递增的vector1:
temp += Time.deltaTime * speed;
但是 Shader graph 可以防止节点循环。
我可以在脚本中执行此操作并将其传递给着色器属性,但如果有办法将其全部保存在着色器中。
【问题讨论】:
标签: unity3d time shader shader-graph