ProjectAR 应用图标ProjectAR 应用图标

ProjectAR

你的 Blender 场景,实时出现在房间里。

一款 Blender 插件加一款 iPhone 应用,通过本地网络把你正在编辑的场景实时传输到增强现实中。移动物体、添加修改器或更换材质,AR 视图都会在不到一秒内同步更新。

Blender

在 AR 中检查模型,通常意味着每次修改后都要导出、发送、再重新打开。ProjectAR 让 Blender 保持打开,只发送发生变化的部分,因此桌上的模型永远就是文件里的模型。

最高60每秒变换更新次数
最高10每个物体每秒的网格更新次数
3桌面平台:Windows、macOS 和 Linux
0需要额外安装的 Python 包

看看亮点。

  • 边做边看,实时同步。在 Blender 中移动、旋转或缩放,桌上的物体随之而动。

  • 修改器效果,原样呈现。视口中显示什么,包括求值后的几何体,AR 中就呈现什么。

    Blender
  • 实例与散布,一并传输。集合、粒子和 Geometry Nodes 实例同样可以传输,上限由你设定。

  • 多部手机,同一场景。手机可随时加入,后加入的设备也会收到完整场景。

  • 传输内容,由你挑选。所有可见物体、仅选中项或某一个集合,并可让任意物体不出现在 AR 中。

    Blender
  • 自动发现。借助 Bonjour,Blender 会出现在应用的 Nearby 列表中,也可以手动输入 IP。

一切,皆可传输。

插件会发送哪些内容,又如何让手机运行流畅。

  • 实时传输。物体变换最高每秒更新 60 次;几何体或材质变化时重新发送网格。

  • 只传变化。只有在设备连接、打开文件、单位缩放改变或按下 Resync 时,才会发送完整场景。

  • 应用修改器。求值后的几何体,与视口中显示的完全一致。

  • 实例。集合、粒子和 Geometry Nodes 实例,上限由你设定。

  • 选择传输内容。所有可见物体、选中项或某一个集合;任意物体都可在 AR 中隐藏。

  • AR 原点。世界原点或 3D 游标会落在你点按的位置,远离原点的模型也能轻松放置。

  • 暂停更新。大量编辑时暂停传输,恢复后手机会自动同步。

  • 基础材质。来自 Principled BSDF 的 Base Color、Metallic、Roughness 和 Alpha。

  • 自动发现。在每个网络接口上运行 Bonjour,也可手动粘贴 IP。

  • 多设备。同时连接多部手机,每部都有独立的数据计数和断开按钮。

  • 记住你的设置。端口、更新频率和各项上限都会保留,服务器还可以随 Blender 一同启动。

  • 照顾较慢的手机。为每个物体设定三角面和实例预算,并为跟不上的设备自动重新同步。

工作原理。

Blender 的数据只在其主线程上读取;只有封装完成的字节帧才会进入网络线程。

  1. 监视场景

    depsgraph 处理器会标记每一个发生变化的物体。

  2. 构建帧

    Blender 主线程上的计时器把删除、网格和变换转换为字节帧。

  3. 发送到每部手机

    每台设备各有一个发送线程,负责传送完成的帧。

  4. 互相发现

    Bonjour 以 _viewar._tcp 广播服务器,也可手动输入 IP。

  5. 放置场景

    网格进入 RealityKit 的 Y 轴向上坐标空间;点按一个表面即可放置场景。

网络上传输的一帧

长度4 字节 · 大端序
类型1 字节 · 1 为 JSON,2 为网格
载荷JSON:hello、clear、transforms、remove、ping · 网格:顶点位置、法线、UV、三角面索引及逐三角面材质,小端序

协议版本 1 不支持实例化:每个实例都作为普通物体发送,并带有稳定的 id,例如 Trees/Pine#0.12;被多个实例共享的网格在每次更新时只三角化一次。

旧款 iPhone,同样适用。

面板会随时统计三角面和实例数量,在场景变得过重之前发出提醒,并列出所有被跳过的内容。

默认端口51515TCP,mDNS 使用 UDP 5353
每个物体的三角面300,000超过此数的物体将被跳过
实例500超过此数,实例将不会发送

每秒更新次数

默认 30 次;动画繁重的场景建议 15 至 20 次。

场景规模

整个场景请控制在约一百万个三角面以内;超过时面板会发出提醒。

预览时

降低视口中的细分级别,隐藏不需要的内容,或只传输一个集合。

雕刻时

暂停更新,之后再让手机同步跟上。

一分钟,即可连接。

电脑和手机处于同一网络,Blender 已获防火墙放行,应用就能找到它。

  • Windows

    允许 Blender 在专用网络上通信。

  • macOS

    允许 Blender 查找你网络中的设备。

  • Linux

    如果启用了防火墙,请开放两个端口。

  • 任意网络

    家用路由器或手机热点效果最佳。

  • 故障排除

    常见问题的解决办法。

技术规格

插件
Blender 4.2 或更高版本,已在 5.2 LTS 上测试,支持 Windows、macOS 和 Linux。无需额外的 Python 包;Bonjour 库以 wheel 形式随附。
应用
ProjectAR iOS 应用,需在支持 ARKit 的 iPhone 或 iPad 上运行
网络
电脑与手机连接同一 Wi-Fi 或局域网,且未启用客户端隔离
传输内容
网格、曲线、曲面、元球和文本物体及其实例,含逐角法线和当前活动的 UV 贴图
材质
来自 Principled BSDF 的 Base Color、Metallic、Roughness 和 Alpha
暂不支持
灯光、摄像机和图像纹理
隐私
服务器仅在你按下 Start Server 后启动,只在本地网络上监听,从不连接互联网

更多工具

Windows

当 Windows Defender 防火墙询问时,请允许 Blender 在专用网络上通信。如果你的 Wi-Fi 配置文件设为公用,请将其改为专用。

无需安装 Apple Bonjour,发现功能已内置。

macOS

出现提示时,请允许 Blender 查找本地网络中的设备。之后也可以在“系统设置 › 隐私与安全性 › 本地网络”中更改。

Linux

如果你使用 ufw 等防火墙,请开放 TCP 51515 和 UDP 5353(mDNS)。

任意网络

访客网络以及许多办公室或大学网络会阻止设备之间的直接通信。家用路由器或手机热点则能稳定工作。

如果无法自动发现,请在应用中输入电脑的 IP 地址;面板会列出它正在监听的所有地址。

故障排除

无法打开端口。另一个程序或第二个 Blender 正在占用它。请在设置中选择其他端口,并在应用中输入该端口。

应用始终找不到电脑。通常是防火墙或网络的原因。先尝试手动输入 IP,以区分是发现问题还是连接问题。

已连接,但什么都没出现。点按一个表面来放置场景。检查物体在视图层中是否可见、传输范围是否被限定为空的选择,以及更新是否处于暂停状态。然后按下 Resync。

模型离我点按的位置很远。这是因为它离世界原点很远。将 AR Origin 设为 3D Cursor,再把游标吸附到模型上。

颜色不对。只会读取未连接节点的 Principled BSDF 数值;使用贴图的 Base Color 会改用材质的视口显示颜色。