06:kanzi渲染效果之ADAS二元三次方程车道线

用户头像
其他/设计爱好者/2天前/244浏览
06:kanzi渲染效果之ADAS二元三次方程车道线
1、实现效果
Current Time 0:00
/
Duration Time 0:00
Progress: NaN%
Playback Rate
1.00x
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 轴)
06:kanzi渲染效果之ADAS二元三次方程车道线(图ZNDA2NDA1MTAw) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
工程输入截图
Collect
3.2 输出(1 个)
  • LaneOffsetValue:4 分量向量,存放拟合系数
     X → C0(常数项)
     Y → C1(一次项)
     Z → C2(二次项)
    W → C3(三次项)
06:kanzi渲染效果之ADAS二元三次方程车道线(图ZNDA2NDA1MTA0) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
工程输出截图
Collect
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 顶点 → 画出弯曲线。
06:kanzi渲染效果之ADAS二元三次方程车道线(图ZNDA2NDA2NDE2) - 其他三维 - 站酷设计师KANZI_Service原创素材 - 站酷ZCOOL
代码截图
Collect
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
相关收藏夹
地产VI
地产VI
地产VI
地产VI
大家都在看
Log in