Houdini使用Python给点连线
制作思路
方法源自一个镜头,要在模型自身上生成闪电,制作思路如下:
- 身上洒点;
- 把点连成线;
- 把线转成闪电形状;
本节主要讨论第二点,把点连成线,线的分布是关键的一点,我们要避免距离相隔很远的点连成线,这样模型上的分布纵横交错会很乱。我们使用python完成连线,代码思路如下:
- 获取points
- 遍历每个点
- 找到最近的点
- 连成线
Python Code
# 获取points
node = hou.pwd()
geo = node.geometry()
points = geo.points()
# 定义一个最大距离
max_distance = 999
# 初始化当前最小距离变量
min_distance = max_distance
# 遍历每个点
for point in points:
# 查找最近点
for other_point in points:
if point is other_point:
continue
# 判断距离是否为当前最小距离,九更新当前距离为最小距离如果是
dist = point.position().distanceTo(other_point.position())
if(dist<min_distance):
min_distance = dist
near_point = other_point
#连线
line = geo.createPolygon()
line.setIsClosed(0)
line.addVertex(point)
line.addVertex(near_point)
#重置当前最小距离
min_distance = max_distance
Hip文件: https://pan.baidu.com/s/1JUlb7zQxhYt2ir8ug1x_qg.
饮水思源:【houdini hom】点云连线1