跳转到内容

intersect_all

要仅获取第一个交点,请使用intersect

int intersect_all(<geometry>geometry, string group, vector orig, vector dir, vector &pos[], int &prim[], vector &uvw[], float tol=0.01, float ttol=0.01 )

<geometry>

当在节点上下文(如wrangle SOP)中运行时,此参数可以是一个表示输入编号(从0开始)的整数,用于从中读取几何体。

或者,该参数可以是指定要读取的几何体文件(例如.bgeo)的字符串。在Houdini内部运行时,可以是op:/path/to/sop引用。

group

如果指定,则仅与该组中的图元相交。

orig

射线起点。

dir

射线方向和最大距离。 此函数不需要归一化的方向向量。 而是使用向量的长度作为搜索的最大距离。

&pos

函数会用每个交点的世界空间位置覆盖此数组。

&prim

函数会用射线击中的图元编号覆盖此数组。

&uvw

函数会用交点在图元上的参数化UVW坐标覆盖此数组。

tol, ttol

tol是3D容差。ttol是射线容差。 在参数化射线容差ttol范围内的碰撞点将被合并, 通常用于避免在击中几何体边缘时获得额外的交点。

要获取所有交点而不合并,请将ttol设置为-1

返回值

交点的数量,如果射线未击中任何物体则返回0

注意 当对metaball几何体执行相交测试时, 无法确定被击中的metaball的图元编号。 在这种情况下,函数返回相交几何体中的图元数量。