体积显示技术通过体素(voxel)而非像素构建真实三维图像,提供无需眼镜的沉浸式多视角体验。在开源项目 MultiVox 中,开发者 AncientJames 巧妙利用双 LED 平面高速旋转扫掠体积空间,实现高效 3D 渲染。该方案的核心在于精确同步面板扫描与旋转位置,避免鬼影并最大化刷新率。本文聚焦单一技术点:双 LED 平面同步体素渲染的工程化参数与落地清单,帮助开发者复现类似体积显示系统。
同步机制:旋转与扫描耦合
MultiVox 支持两种设备配置:Rotovox(双 128x64 面板垂直并排,400mm 球形体积)和 Vortex(双面板水平背对背,300mm 体积)。“It consists of two HUB75 LED panels spinning around a vertical axis.” 项目中,面板围绕垂直轴旋转,利用视觉暂留效应在扫掠体积中填充体素。
同步依赖单个 GPIO 连接的光电传感器(photodiode),输出高电平 180°、低电平 180° 的方波信号。驱动程序(vortex.c)监控此信号,实时扫描共享内存中的体素缓冲区。Raspberry Pi 4 通过内存映射 GPIO 访问,确保微秒级时序精度。旋转速度数百 RPM 时,每转需数百切片(slices),每个切片对应面板宽度的一薄层体积。
可落地参数:
- 切片数(slice count):128–256。模拟器默认 128,高值提升分辨率但增加计算负载。
- 同步 GPIO:默认配置 gadget_vortex.h 中定义,避免 GPIO3(项目空闲)。
- 轴偏移(offsets):前后面板距旋转轴 0.1–0.3 半径分数,前置面板稍近以补偿径向畸变。
- 扫描几何:径向(radial,默认)或线性(linear,美观但机械难)。模拟器 -g l 测试线性效果。
落地清单:
- 焊接 HUB75 适配板(rpi-rgb-led-matrix 风格),双通道 RGB(RGB_0/RGB_1)。
- 安装光电传感器对准旋转盘,调试阈值确保 50% 占空比。
- CMake -DMULTIVOX_GADGET=vortex 编译驱动,运行
./vortex观察轮廓率(rotation rate)稳定 300–600 RPM。 - 按键 'l' 锁定旋转相位,面对固定方向测试稳定性。
体素渲染:缓冲与输出优化
客户端(如 toys 中的 fireworks.c)写入共享内存体素缓冲(分辨率依 gadget:Vortex 约 128x64x128 体素)。驱动按旋转角度切片缓冲,逐行输出到 HUB75 面板。支持 ABCDE 或 ABC 移位寄存器寻址(--led-row-addr-type=2/3)。
位深(bit depth)是关键权衡:1–3 bits/channel。3 bits 提供 8 级灰度但刷新率降至 10–20 Hz;1 bit 达 60 Hz 但单色。均匀性(uniformity)策略:径向亮度衰减补偿,外围体素增益 1.2–1.5x。
优化参数:
- 位深:按键 'b' 循环。生产用 2 bits(4 级灰,30 Hz)。
- 拖尾补偿(trails):按键 't' 调节,积累跳过体素。高转速超刷新时,回填 5–10 帧历史。
- 漂移(drift):按键 'd/D' 引入 rotisserie 模式,模拟均匀旋转,避免热点。
- 面板禁用:按键 'p' 测试单面板,验证同步。
模拟器 virtex 测试参数:
./virtex -s 128 -o 0.2 0.25 -b 2 -w 128 64 -g r
观察 OpenGL 渲染,调整至无闪烁。
风险与限值:
- 刷新率 <10 Hz 闪烁明显,回滚至 1 bit。
- 机械不平衡导致振动,目标 <0.5g 加速度(用加速计监测)。
- 功耗:双面板 12V/5A,监控温度 <60°C。
透视校正与扩展潜力
虽无内置观众跟踪,项目支持 orthographic 视图(静止时 xyz 轴切换)。径向几何需软件透视校正:外围切片拉伸 10–20% 以补偿角度压缩。未来集成摄像头(如 PocketVK 项目)跟踪头部,实现视点相关渲染。
监控清单:
| 参数 | 阈值 | 调整键 / 命令 |
|---|---|---|
| 刷新率 | >20 Hz | 降位深 |
| 旋转率 | 400 RPM | 电机 PID |
| 同步相位 | <5° 抖动 | 传感器校准 |
| 均匀性 | Δ 亮度 <15% | 增益表 |
| 温度 | <70°C | 风扇 PWM 50% |
复现成本 <500 USD(面板、Pi、电机、3D 打印)。从 VortexParts STEP 文件打印框架,碳纤杆固定面板。
资料来源:
- GitHub: https://github.com/AncientJames/multivox
- GitHub: https://github.com/AncientJames/VortexParts
- YouTube 演示: Rotovox/Vortex 视频
通过这些参数,开发者可构建稳定体积显示原型,推动交互艺术与可视化应用。(字数:1028)