如何在搅拌器圆柱节点着色器中添加时间关系?

时间:2018-12-10 13:33:27

标签: shader nodes blender

在GLSL中有gl_Time属性。
搅拌机缸节点中的等效项是什么? 我发现使用关键帧是一个答案,但是我必须为每手数百帧设置关键帧(帧1:值= 1;帧2 =值= 2; ...)
必须有一种更好的方法来使纹理在某些内容上滚动。

1 个答案:

答案 0 :(得分:1)

在循环材质中,您可以添加Mapping node并使用位置,旋转和比例值移动纹理。这些值可以设置关键帧,以便它们随时间变化,通常设置两个关键帧足以在动画期间进行连续滚动。

Drivers允许我们使用python表达式以编程方式为值设置动画。

在节点树中,您可以添加value input node并为该值设置驱动程序。输入表达式的快捷方式是编辑值并在#之后输入表达式。通过在值字段中输入#frame,您将获得一个等于当前帧号的驱动程序。

请注意,在节点树中使用驱动程序时存在依赖性问题。尽管此问题已在2.80版中修复,但在使用旧版本时,应使用--enable-new-depsgraph CLI option启用新的依赖关系图。

还可以使用脚本来创建具有计算值的关键帧。

import bpy

scn = bpy.context.scene
node = bpy.context.object.material_slots['Material'].material.node_tree.nodes['Value']

for f in range(scn.frame_start, scn.frame_end):
    node.outputs[0].default_value = f * 1.25
    node.outputs[0].keyframe_insert("default_value", frame=f)