usd_flattenediprimvarelement
始于版本 | 19.0 |
---|
<type> usd_flattenediprimvarelement(<stage>stage, string primpath, string name, int index)
<type> usd_flattenediprimvarelement(<stage>stage, string primpath, string name, int index, float timecode)
此函数返回指定图元或其继承自祖先图元的扁平化数组primvar中某个元素的值。
部分primvar支持索引机制——primvar本身存储唯一值的压缩数组,并通过索引数组实现实体到值的映射。本函数通过索引数组展开压缩数组,并返回展开数组中指定索引处的元素值。
<stage>
在节点上下文(如wrangle LOP节点)中运行时,该参数可接收表示输入编号的整数(从0开始)以读取对应阶段。整数形式等效于引用特定输入的字符串形式(例如”opinput:0”)。
该参数也可用于引用USD文件(如”/path/to/file.usd”),或通过op:
路径前缀引用其他LOP节点的已处理阶段(如”op:/stage/lop_node”)。
primpath
目标图元的路径。
name
Primvar名称(不包含命名空间)。
index
展开数组中的索引位置。
timecode
评估属性时使用的USD时间码。USD时间码大致对应Houdini中的帧号。若未指定,则使用当前帧对应的时间码。
返回值
返回现有primvar扁平化值数组中的元素。若primvar不存在则返回零值/空值。如需检查primvar是否存在,请使用usd_isiprimvar。
示例
示例
// 获取立方体图元或其祖先上的扁平化primvar值float flat_value = usd_flattenediprimvarelement(0, "/geo/cube", "primvar_name", 3);
// 当前帧获取球体图元"bar"primvar第10个元素f@flat_primvar_element_10_at_current_frame = usd_flattenediprimvarelement(0, "/geo/sphere", "bar", 10);// 第7帧获取球体图元"bar"primvar第10个元素f@flat_primvar_element_10_at_frame_7 = usd_flattenediprimvarelement(0, "/geo/sphere", "bar", 10, 7.0);
(注:保持所有代码块、函数名、参数名及技术术语原文不变,仅对描述性文本进行本地化处理)