可以通过不同方式创建 for 循环。您可以创建自定义代码节点。选择“工具”
“切换高级模式”进入高级模式,然后选择“硬件明暗器节点”
“各种”
“自定义代码”。在“特性”面板中,单击“编辑”按钮,以便在显示的“自定义代码编辑器”对话框中输入代码。使用与 DirectX 视口驱动程序兼容的函数。
要创建“For 循环”节点,您还必须启用高级模式。
以下示例说明了如何使用 for 循环对具有不同 UV 偏移的纹理采样三次。采样值相加,然后总和除以三,所得平均值应用到 TraditionalGameSurfaceShader 的“漫反射颜色”通道。
设置 for 循环:
“切换高级模式”以确保“高级”模式处于活动状态。
“流动控制”
“For 循环”以创建 ForOp 节点。 
“值”
“整型”创建一个整数节点。在“属性”面板上,将其值设置为 3。将其连接到 for 循环节点的 B 属性。 默认情况下,A 的值为 0,C 的值为 1。如果您在循环中使用这些默认值,则无需连接这些属性。
在此示例中,我们设置了 i = 0, i < 3, i++;因此,我们不需要明确设置 A 和 C 值
“各种”
“字符串”来创建将用作枚举器的字符串。在“属性”面板中,从“默认选项”下拉列表选择 i(您必须向下滚动才能看到此选项)。将“字符串”节点的“输出”端口连接到“For 循环”节点的“枚举器”属性。
“值”
“float3”创建变量,以存储循环中计算的值。 
设置纹理采样:
“纹理”
“纹理贴图”以创建“纹理贴图”节点。在“属性”面板中,使用“MyTexture/路径”控件为此节点指定纹理文件。 也可以在“属性”面板中,确保“采样器/U 坐标”和“采样器/V 坐标”属性设定为“WRAP”。
由于对该纹理进行采样偏移,采样可能会超出 0 到 1 的 UV 范围。将这些属性设置为“WRAP”可确保在 UV 范围超出 1.0 时从纹理开始之处对进行像素采样。
“值”
“数组”以创建“数组”节点。三组偏移值存储在此数组中。
“值”
“float2”三次,以创建三个 float2 节点来存储三组偏移值。使用“属性”面板来设置三个 float2 属性,如下所示:
“输入公用”
“UV 集和硬件明暗器节点”
“数学”
“添加”以创建“UV 集”节点和“添加”节点。 
计算采样的平均结果:
“各种”
“字符串”来创建“字符串”节点。在“属性”面板中,从“默认选项”下拉列表中选择 + =。 For 循环将纹理采样的结果添加至“循环结果”变量。
“数学”
“拆分”将创建“拆分”节点。将 For 循环的“输出”属性连接到“拆分”的第一个“值”属性。 由于“循环结果”是三个采样值的和,必须将它除以三个才能获取其平均值。
“值”
“浮点”以创建“浮点”节点。在“属性”面板中,将其“值”设置为 3.0。将其“浮点”属性连接到“拆分”的其他“值”属性,以将采样结果的和除以三。 

迭代棋盘图案的结果(使用 Quicksilver 渲染器渲染)
可以将 ShaderFX 材质导出到明暗器文件并检查明暗器代码,以查看刚创建的 For 循环:
float3 LoopResult = float3(1.0, 1.0, 1.0);
for(int i=0; i<3; i+=1)
{
float2 AddOp = (Array_bphdfiwhhj[i] + IN.map1.xy);
float4 Sampler = chessboard_woodjpg.Sample(MMMLWWWSampler, AddOp);
LoopResult += Sampler.xyz;
}
有关导出到明暗器文件的详细信息,请参见导出到 HLSL、CgFX 和 GLSL。