您可以获取并设置几何对象(如网格和体积)的特性(如 point_position 或 voxel_fog_density)。您还可以创建自己的特性以控制自定义效果。
通常,特性是对象的键-值对。键是一个名称(字符串),值可以是几乎任何内容。在许多情况下,值是另一个具有一个或多个自己的特性的对象。
特别是,几何对象可以具有几何特性。point_position 和 voxel_fog_density 都是几何特性的示例。几何特性的值本身就是具有其自己特性的对象,包括:
point_position、point_normal 和 point_size 都针对 point_component,而 voxel_fog_density 和 voxel_temperature 针对 voxel_tile_tree。float3 点定位的数组)。有几个节点用于获取并设置特性。大多数情况下,应该使用 get_geo_property 和 set_geo_property_data。例如,要更改粒子的大小,首先使用 get_geo_property 获取 point_size 数据,然后修改值,最后使用 set_geo_property_data 将其存储在对象上。
get_geo_property使用 get_geo_property 返回几何特性的值数组。它还返回目标组件的默认值和名称。但是,如果几何对象上不存在该特性,则返回的数据为空数组。
有一个名为 get_geo_property_check 的变体,它还返回一个布尔值,以指示是否找到该特性。
还有一些常用特性的专用节点,例如 get_particle_position 和 get_particle_velocity。这些节点更为方便,因为您不需要键入特性名称。
set_geo_property_data使用 set_geo_property_data 更新现有几何特性的数据的数组。它比 set_geo_property 更方便,因为特性已经存在,您不需要指定默认值或目标组件。
set_geo_property使用 set_geo_property 创建几何特性并设置其初始数据值。您可以出于任何目的创建和修改自定义几何特性。创建几何特性后,您可以使用 get_geo_property 和 set_geo_property_data 获取并设置它。
使用 set_geo_property 创建自定义特性的原因之一是存储用户数据以用于渲染。支持 Bifrost 的渲染器可以使用此数据。例如,通过 Arnold,您可以使用用户数据着色器获取几何特性的值,并将其连接到着色器树中。浮点几何特性值在顶点之间进行插值。有关支持类型及其转化方式的列表,请参见 Arnold 手册中的“Bifrost 图表”。
get_property, set_property使用 get_property 和 set_property 获取并设置任何特性。这些特性并不仅仅限于几何特性。请注意确保这些值的类型正确,因为这些节点不执行任何检查。