Houdini·公路工具(未完)
本次练习实现公路生成工具。通过创建曲线在曲线路径上生成道路。主要特性有:
✔️ 在自定义曲线路径上生成道路
✔️ 支持交叉路口生成
✔️ 支持马路牙子生成
✔️ 支持到沿路红绿灯、路灯、电线杆、广告牌等物件生成
✔️ 支持根据转弯弧度决定是否生成围栏
❌ 交叉路口的角度最好不要小于45°,夹角越小会导致polyexpand时生成多余大块primitive
❌ 暂不支持交叉路口贴图(只支持平铺贴图)
❌ 暂不支持多种路面宽度
Base
道路曲线由多个curve
构成。
💠 交叉点
因为后续要根据曲线的交叉点进行交叉路口的处理,所以在这一步需要确定各个曲线的交叉点。
首先对线组resample
,增多point以减少后续fuse误差,同时平滑曲线。
然后对通过intersection analysis
获取线组的交叉点。
再后需要在保留交叉点的前提下对整个线组进行resample
。因为resample的插值对象是primitive,所以先用polypath
将相连的单方向线段合并为一个prim,再使用resample
,即可达成目的。
💠 添加相关属性
根据后续操作,我需要获得交叉点、交叉点相邻点等信息。使用attribute wranggle,通过遍历相邻点可以将这些点分组或为其添加属性。
处理后的曲线如下图:
交叉路口生成
单向路面生成
emmmm