06:kanzi渲染效果之ADAS二元三次方程车道线
其他/设计爱好者/2天前/244浏览
版权
06:kanzi渲染效果之ADAS二元三次方程车道线
1、实现效果
2、插件概述
- 作用:通过C++DLL扩展Kanzi引擎功能,在Kanzi Studio中注册自定义节点类型(EigenNode)和自定义属性(WayPoint0~6、laneOffsetValue)
- 工作原理:Kanzi Studio加载DLL→调用 createModule()导出函数→获取插件的metaclass列表(包含自定义节点和属性定义),在编辑器中展示这些自定义类型
- 功能:接收 7 个车道航路点,使用 Eigen 库进行三次多项式最小二乘拟合,输出 4 个曲线系数,供 Kanzi 顶点 Shader 绘制平滑车道线。
- 适用场景:Kanzi HMI /自动驾驶仪表车道渲染。
- 车机 / 仪表里要显示平滑的弯道、车道线,不能是折线。
- ADAS 会给你7 个离散坐标点,不是整条曲线。
- 这个插件就用 Eigen 数学库 + 最小二乘法,把 7 个点拟合成一条光滑的曲线,传给 Shader 画出来。
3、插件输入 / 输出属性
3.1 输入(7 个)
- WayPoint0 ~ WayPoint6:7 个车道点横向坐标(Y 轴)
3.2 输出(1 个)
- LaneOffsetValue:4 分量向量,存放拟合系数
X → C0(常数项)
Y → C1(一次项)
Z → C2(二次项)
W → C3(三次项)
4、工作流程(5 步)
4.1 :创建插件与属性新建 Kanzi Plugin,定义 7 个输入点、1 个输出系数。
4.2:数据绑定将 7 个 WayPoint 绑定到 ADAS 输出的 7 个车道坐标。
4.3:触发计算任意一个点变化 → 自动执行拟合。
4.4:拟合计算(核心)
1)使用 Eigen 库:
2)根据 x_data 构建设计矩阵(Vandermonde 矩阵)
3)使用 ColPivHouseholderQR 或 FullPivLU 分解
4)输出 C0/C1/C2/C3
4.5:系数传递与渲染系数绑定 → 传给顶点 Shader → 偏移 Mesh 顶点 → 画出弯曲线。
5、Kanzi 绑定规范
- 输入绑定:WayPoint0~6 → ADAS LaneMarkYAxisPoint1~7
- 输出绑定:LaneOffsetValue.X/Y/Z/W → Shader C0/C1/C2/C3
- Shader 使用:根据 z 坐标计算 x 偏移,实现车道弯曲。车道 Mesh 原本是直道顶点沿纵向(Z 轴或 X 轴)均匀分布纵向位置不变横向位置 = 原始横向位置 + 多项式值
6、注意事项
- 必须输入7 个点,少了会拟合错误
- 纵向 z 坐标固定,不可随意修改
- Shader 必须正确接收 4 个系数
- 建议在坐标更新时触发计算,不要每帧无意义计算
0
Report
声明
收藏
Share
相关推荐
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
You may like
相关收藏夹
Log in
推荐Log in and synchronize recommended records
收藏Log in and add to My Favorites
评论Log in and comment your thoughts
分享Share






















































































