尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Webots Billboard 节点完全指南:让 HUD 信息永远面向视点
科研自动驾驶物理引擎【免费下载链接】webotsWebots Robot Simulator项目地址https://gitcode.com/gh_mirrors/web/webots点击查看免费下载导读本文讲解 Webots 仿真器中的Billboard公告板节点它能让一组子节点在三维世界中自动旋转与平移始终正面朝向当前视点Viewpoint。无论你在场景中如何移动视角挂在 Billboard 中的内容如驾驶舱仪表、足球比赛比分牌、信息提示框都会像真实世界中的公告板一样正对着观察者。读完本文你将掌握 Billboard 的字段结构、放置规则、摄像机可见性、阴影行为以及它的源码级实现原理并能在自己的.wbt世界文件中直接复用它。一、Billboard 是什么从需求到节点定义在 Webots 中常规的三维物体如 Shape、Solid会随视点移动而自然改变在屏幕上的投影角度。如果需要在主视图中恒定显示一段信息——无论视点如何移动和旋转都正对着你——就需要一个不受视点变化影响的载体。Billboard节点正是为此设计ABillboardnode containschildrennodes that rotate and translate automatically to follow the viewpoint and face it.该节点在 R2021b 版本中被引入官方发布说明描述为A new Billboard node has been introduced to display information in the main view regardless of the position and orientation of the viewpoint.见 docs/blog/Webots-2021-b-release.md。典型应用场景包括座舱仪表cockpit显示、足球比赛比分score of a soccer match、HUD 信息面板等。Billboard 的完整字段定义如下见 docs/reference/billboard.md 与节点声明文件 resources/nodes/Billboard.wrlBillboard { MFNode children [ ] # {node, PROTO} }它仅继承自 Group 节点的children字段没有新增任何可配置参数。字段含义字段类型默认值说明childrenMFNode[ ]子节点列表可包含任意节点与 PROTO 实例Billboard 会整体朝向视点从节点继承关系看Billboard是Group的直接派生节点见 docs/reference/group.md 中 Direct derived nodes: Pose, Billboard因此它的行为与Group基本一致只是额外附加了自动朝向视点的变换。二、核心行为与放置规则2.1 自动旋转 平移与 Group 别无二致除自动朝向视点外Billboard 与 Group 节点完全类似children之间不引入新的坐标变换子节点按照在场景树中的层级摆放。2.2 新增子节点的放置要点沿 x 轴正方向平移当一个节点被加入 Billboard 的children列表时它是相对于视点的位置与朝向被放置在世界中的。这意味着When a node is added to thechildrenlist of aBillboard, it is placed in the world relatively to the viewpoint position and orientation. To see the newly added nodes, they should be translated positively along their x-axis.也就是说为了让刚加入的子节点可见需要让它在自身局部坐标系的 x 轴正方向上进行平移。这是因为 Billboard 内部会把自己的朝向同步为视点的朝向此时子节点的局部 x 轴恰好对应从视点指向远方的方向——把内容沿 x 轴正方向推出才能保证它出现在视点正前方而不是视点所在位置或视点背后。来看仓库测试用例 tests/api/worlds/billboard.wbt 中的标准写法子内容一个红色小立方体被包在translation 2 0 0的 Pose 中即沿 x 轴正方向平移 2 米这正是放在视点前方两米处的典型做法Billboard { children [ Pose { translation 2 0 0 children [ Group { children [ Shape { appearance PBRAppearance { baseColor 1 0 0 roughness 1 metalness 0 } geometry Box { size 0.1 0.1 0.1 } } ] } ] } ] }2.3 摄像机视角可见性主视图可见Camera 不可见Billboard 有两个重要的渲染限制Billboard 中的物体对 Camera 节点不可见The objects contained in the Billboard are not visible by CamerasBillboard 内部的 Shape 不能投射或接收阴影cannot cast or receive shadows。这两条限制都能在源码中得到印证在 src/webots/nodes/WbGeometry.cpp 中几何体设置渲染可见性时会检查WbNodeUtilities::isDescendantOfBillboard(this)若位于 Billboard 之下则使用VF_INVISIBLE_FROM_CAMERA可见性标志——即对仿真摄像机隐藏但仍在主视图可见可见性标志VF_INVISIBLE_FROM_CAMERA在 src/webots/wren/WbWrenRenderingContext.hpp 中被注释为 flag for selected outlines and billboards说明该标志正是为 Billboard 这类主视图专用内容准备的。所以Billboard 只能服务于人眼所在的主视图仿真摄像机Robot 上挂载的 Camera 设备是拍不到这些内容的。若你的用例需要让机器人也看到 HUD请改用普通 Group 或 Pose 布局。三、源码级实现原理每帧跟随视点的 Wren 变换要深入理解 Billboard 的始终面向视点可以阅读它的 C 实现 src/webots/nodes/WbBillboard.cpp 与头文件 src/webots/nodes/WbBillboard.hpp。3.1 继承与节点类型WbBillboard继承自WbGroup对应 Group 节点其nodeType()返回WB_NODE_BILLBOARD并以WbTokenizer方式支持从.wbt文件解析、复制与克隆。3.2 关键调用链视点位置与朝向 → Wren TransformBillboard 的实现核心是把视点的位置与朝向同步到内部 Wren 变换节点上postFinalize()连接视点的cameraParametersChanged信号任何相机参数变化都会触发updatePosition()重新定位createWrenObjects()创建一个新的WrTransform即wr_transform_new()挂到自身的 Wren 节点下作为子节点随后创建所有子节点的 Wren 对象并立即执行一次updatePosition()applyTranslationToWren()读取WbWorld::instance()-viewpoint()-position()把视点位置写入该 Transform 的 positionapplyRotationToWren()读取视点的orientation()WbSFRotation写入该 Transform 的 orientation。也就是说Billboard 通过把整个内容子树绑定到视点坐标系来实现跟随子节点在世界中的实际位置/朝向 视点位置/朝向 ⊕ 子节点自身的局部变换。这就是子节点相对于视点摆放、需要沿 x 轴平移才可见这一规则的直接来源。3.3 Web 端的同步实现Web 前端web模块中有对应的 JS 实现 resources/web/wwi/nodes/WbBillboard.js逻辑与 C 一致构造时将自身 id 登记到WbWorld.instance.billboardsupdatePosition()同样将视点的 orientation四元数与 position 写入 Wren Transform。它还提供了isDescendantOfBillboard(node)静态方法沿父链向上遍历判断某个节点是否位于 Billboard 之内——与 C 端WbNodeUtilities::isDescendantOfBillboard见 src/webots/nodes/utils/WbNodeUtilities.cpp一一对应。四、使用限制与注意事项从源码还可以确认两条额外的使用限制Billboard 节点不能使用USE引用在 WbNodeUtilities.cpp 中Billboard与 Solid、Joint 等节点一起被禁止用于 DEF/USE 复用违反时会提示 Billboard nodes cannot be USEd.。因此需要多块信息面板时请创建多个 Billboard 实例而不是DEF/USE一份。Billboard 会放大机器人可插入的判定范围在场景树编辑器中进行插入/粘贴校验时WbNodeUtilities会在多处检查isDescendantOfBillboard(node)例如 WbNodeUtilities.cpp 中判定Robot 能否作为子节点插入时若目标位于 Billboard 内则放宽限制!WbNodeUtilities::isDescendantOfBillboard(node)才会报错。这表明 Billboard 是一个纯粹的可视化容器可以容纳 Robot 等原本只能作为顶层节点的内容但请结合渲染限制理解其用途边界。另外由于 Billboard 内容不可被 Camera 捕捉且不参与阴影它不会影响物理仿真也不能被用作传感器探测目标它是纯粹的 HUD/信息展示层。五、实战构建一个跟随视点的比分牌结合以上规则给出一个可直接运行的完整示例。将下面内容保存为hud.wbt并在 Webots 中打开#VRML_SIM R2025a utf8 WorldInfo { } Viewpoint { } Billboard { children [ Pose { translation 2 0 0 children [ Shape { appearance PBRAppearance { baseColor 0.9 0.2 0.2 roughness 0.5 metalness 0 } geometry Box { size 0.8 0.4 0.05 } } ] } ] }要点回顾translation 2 0 0沿局部 x 轴正方向平移 2 米让面板出现在视点正前方运行后移动/旋转视点面板会始终正对着你尺寸和文字方向不变若在 Robot 上挂 Camera 并切换至其画面面板将不可见面板无法参与阴影投射与接收。更复杂的 HUD文字、图标、多面板只需在 Billboard 的children中继续堆叠 Pose、Shape 等节点并注意沿 x 轴正方向摆放即可。六、与其他节点及文档体系的关联继承关系Billboard 是 Group 的直接派生节点与 Pose 同级节点总览见 docs/reference/node-chart.mdGroup -- Billboard与 docs/reference/nodes-and-api-functions.md语法关键字Billboard 在 docs/reference/nodes-and-keywords.md 的关键字清单中出现因此可被.wbt世界文件直接解析由 src/webots/core/WbLanguage.cpp 注册到语言关键字表中引入历史见 docs/reference/changelog-r2021.md回归测试官方 API 测试 tests/api/worlds/billboard.wbt 配合控制器 tests/api/controllers/billboard/billboard.c 验证了移动视点位置、旋转视点朝向主视图渲染结果导出的三张图片保持逐字节一致即 Billboard 内容始终跟随视点、画面不随视点改变——这是理解其行为的最直观实证。七、常见问题小结Q为什么我把 Shape 加进 Billboard 后看不到它A需要把它沿局部x 轴正方向平移例如包在translation 2 0 0的 Pose 中不加平移时内容与视点重合可能被视点吞没。Q为什么仿真摄像机的画面里没有 Billboard 内容A这是设计行为——Billboard 内容对 Camera 节点不可见VF_INVISIBLE_FROM_CAMERA它只服务于主视图。QBillboard 内的模型为什么没有阴影ABillboard 内的 Shape 不参与阴影投射/接收这是官方文档明确声明的限制。Q能对 Billboard 使用 DEF/USE 复用吗A不能源码会在 DEF/USE 校验时给出 Billboard nodes cannot be USEd. 的警告需要多个面板时请分别实例化。赞分享科研自动驾驶物理引擎【免费下载链接】webotsWebots Robot Simulator项目地址https://gitcode.com/gh_mirrors/web/webots点击查看免费下载相关推荐Webots SolidReference 节点完全指南利用关节端点引用闭合机械回路Webots SolidReference 节点完全指南利用关节端点引用闭合机械回路 导读 SolidReference 是 Webots 中用于在 Join科研自动驾驶物理引擎Webots Coordinate 节点完全指南顶点几何建模的核心数据源Webots Coordinate 节点完全指南顶点几何建模的核心数据源 导读Coordinate 是 Webots 中专门用来承载三维顶点坐标列表的 VR科研自动驾驶物理引擎Webots Viewpoint 节点完全指南视点定位、跟随拍摄与后处理渲染参数详解Webots Viewpoint 节点完全指南视点定位、跟随拍摄与后处理渲染参数详解 Viewpoint 节点是 Webots 机器人仿真器中定义 3D 场景科研自动驾驶物理引擎创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

esp-adf adf_event_hub 测试工程全解析:PC 与 ESP 双目标统一测试、覆盖率与基准实践

esp-adf adf_event_hub 测试工程全解析:PC 与 ESP 双目标统一测试、覆盖率与基准实践

音视频音频处理嵌入式物联网语音 【免费下载链接】esp-adf Espressif Advanced Development Framework for Multimedia Applications 项目地址: https://gitcode.com/gh_mirrors/es/esp-adf 点击查看 免费下载 本文围绕 esp-adf 仓库中 adf_event_hub 测试工程文档…

📅 2026/10/15 17:13:41
2026年开题报告文献综述,AI工具实测避坑指南

2026年开题报告文献综述,AI工具实测避坑指南

开题报告和文献综述,是毕业季第一道坎,也是最容易被低估的一道坎。选题方向刚确认,导师就催着交文献综述,图书馆泡了三天,笔记抄了一堆,打开文档却不知道从哪句写起。这种状态,经历过的人都懂。…

📅 2026/10/15 17:13:41
分光计调节原理:各调一半法的光学-机械耦合解析

分光计调节原理:各调一半法的光学-机械耦合解析

简介:本资源是一份完整的大学物理实验报告,面向高校物理类专业本科生及实验课程学习者,聚焦分光计这一核心光学仪器的操作与原理验证,重点解决三棱镜顶角与折射率测量中的调校难点与数据处理问题。报告涵盖分光计结构认知、望远镜…

📅 2026/10/15 17:08:41
MORE NEWS

更多资讯

📰

计算机组成原理课设:从指令集到数据通路的CPU设计实战指南

简介:面向山东大学20级计算机专业学生的《计算机组成原理》课程设计资料,围绕电路图设计与命令集定义展开,内容涵盖数据表示、运算器、控制器、存储系统等核心知识点,并涉及原理图绘制、指令集设计、实验报告撰写等完整环节&#…

📰

两串锂电池均衡实战:MP2642GR-Z与PIC32MZ1024EFK144的软硬协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

多个传感器如何协同作战?World2Agent多传感器组合与fanout传输完整指南

【免费下载链接】world2agent World2Agent(W2A) is an open protocol that standardizes how Al agents perceive the real world. 项目地址: https://gitcode.com/gh_mirrors/wo/world2agent 点击查看 免费下载 World2Agent(W2A)是一个开放…

📰

PASCAL-5i 小样本语义分割数据集复现要点与踩坑指南

简介:Pascal-5i数据集是面向小样本学习研究的标准化数据集,源自PASCAL VOC,将20个类别划分为基础类与新类,支持5-way 1-shot和5-way 5-shot任务,适合需要验证原型网络、元学习或知识迁移方法的科研人员与算法工程师使用…

📰

c9-python-getting-started 系列:用 asyncio 与 async/await 编写 Python 异步操作

示例工程教程 【免费下载链接】c9-python-getting-started Sample code for Channel 9 Python for Beginners course 项目地址: https://gitcode.com/gh_mirrors/c9/c9-python-getting-started 点击查看 免费下载 本指南围绕 more-python-for-beginners 课程中「As…

📰

SAP固定资产减值与增值配置实操指南

简介:本资源是一份面向SAP财务顾问与企业资产管理人员的实操型配置手册,聚焦固定资产减值与增值在SAP系统中的合规落地,解决市场价值波动下账面价值调整难、账务处理逻辑不清、后台配置易出错等实际问题。手册系统梳理三种主流实现方式&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬