1.houdini与unity对比
2.按照houdini官网提供unityAPI的文档编写指令:
attribwrangle_prim节点:获取unity工程树的路径
s@unity_hf_tree_prototype0 = "Assets/Nature/Models_trees/Tree4.prefab";
方法1:attribwrange_points节点
if(s@tag == "su")
{
i@unity_hf_treeinstance_prototypeindex = 0; //
f@unity_hf_treeinstance_heightscale = 5;
f@unity_hf_treeinstance_widthscale = 5;
p@unity_hf_treeinstance_lightmapcolor = chp("Cd");
p@Cd = chp("Cd");
}
if(s@tag == "su")
这是一个 if 语句,它使用 s@tag 变量的值检查是否等于 "su"。如果条件为真,代码块中的内容将被执行。
i@unity_hf_treeinstance_prototypeindex = 0;
这行代码将整数值 0 分配给变量 i@unity_hf_treeinstance_prototypeindex。
f@unity_hf_treeinstance_heightscale = 5;
这行代码将浮点数值 5 分配给变量 f@unity_hf_treeinstance_heightscale。
f@unity_hf_treeinstance_widthscale = 5;
这行代码将浮点数值 5 分配给变量 f@unity_hf_treeinstance_widthscale。
p@unity_hf_treeinstance_lightmapcolor = chp("Cd");
这行代码将另一个变量 chp("Cd") 的值分配给 p@unity_hf_treeinstance_lightmapcolor,它似乎是一个颜色变量。
p@Cd = chp("Cd");
这行代码将另一个变量 chp("Cd") 的值分配给 p@Cd,它似乎也是一个颜色变量。
检查变量 s@tag 的值是否为 "su",如果是,则分配特定的值给一些变量。它还将一个变量的值设置为另一个变量的值,这可能是为了方便而执行的。
方法2:attribwrange_points节点 如果换成这段代码会变成这样:
int protoid= (int)fit(rand(@ptnun), 0, 1, 0, 2);
i@unity_hf_treeinstance_prototypeindex = protoid;
f@unity_hf_treeinstance_heightscale=@pscale;
f@unity_hf_treeinstance_widthscale=@pscale;
int protoid= (int)fit(rand(@ptnun), 0, 1, 0, 2);
此行代码使用 rand 函数生成一个随机数,该函数使用 @ptnun 作为参数。fit 函数将这个随机数缩放为介于 0 到 2 之间的范围,并使用 (int) 语法将其转换为整数。这个整数随后被赋值给变量 protoid。
protoid通常表示原型标识符,它可以用于创建具有不同形状和大小的实例化几何体。
protoid可能会被分配一个随机数值,作为生成实例化几何体的基础。这样做的目的可能是在每次生成实例化几何体时都获得不同的形状和大小,增加场景的变化和视觉吸引力。通常,通过将protoid与其他参数一起使用,例如高度比例和宽度比例,可以控制生成的实例化几何体的大小和形状。
i@unity_hf_treeinstance_prototypeindex = protoid;
此行代码将 protoid 的值赋给变量 i@unity_hf_treeinstance_prototypeindex。
f@unity_hf_treeinstance_heightscale=@pscale;
此行代码将 @pscale 的值赋给变量 f@unity_hf_treeinstance_heightscale,该变量似乎是一个浮点数变量。
f@unity_hf_treeinstance_widthscale=@pscale;
此行代码将 @pscale 的值赋给变量 f@unity_hf_treeinstance_widthscale,该变量也似乎是一个浮点数变量。
网友评论