你如何在搅拌机循环节点着色器中添加时间关系?
How do you add the time relation in blender cylces nodes shader?
在 GLSL 中有 gl_Time 属性。
blender cylces节点中的等价物是什么?
我发现使用关键帧作为答案,但我必须为每只手设置数百帧的关键帧(第 1 帧:值 = 1;第 2 帧 = 值 = 2;...)
必须有更好的方法让纹理在某些东西上滚动。
在循环material中,您可以添加一个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)
在 GLSL 中有 gl_Time 属性。
blender cylces节点中的等价物是什么?
我发现使用关键帧作为答案,但我必须为每只手设置数百帧的关键帧(第 1 帧:值 = 1;第 2 帧 = 值 = 2;...)
必须有更好的方法让纹理在某些东西上滚动。
在循环material中,您可以添加一个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)