正在加载商城…
极塔素材

SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描

SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 1

资源介绍

使用 3D 高斯泼溅将真实地点带入 Unity:从照片重建的可探索扫描。拖入 .sog、.spz 或 3DGS .ply,添加碰撞与玩法,或带入 VR。支持 Built-in、URP 和 HDRP。大规模捕捉在固定 GPU 预算下流式加载——包含城市级扫描。 包内附带完整手册、故障排查表和调优指南,提供英文和日文版。演示视频见上方图库。所有图库图片均为未经编辑的 Unity 内截图。支持:本页面上的发行商联系方式。 导入:一步,三种格式 SOG(PlayCanvas / SuperSplat)、SPZ(Niantic,v3 gzip 和 v4 NGSP+zstd)以及 3DGS PLY(SH 阶数 0–3)。将附带的 .sog、.spz 或 .ply 拖入您的项目,即可获得渲染就绪的 GaussianSplatAsset——无需外部转换器,无需命令行。未打包的 SOG(meta.json 及其 WebP 文件)改用编辑器菜单导入,同样只需一步。superspl.at 数据集可直接导入。二进制 3DGS PLY 也可以直接从编辑器转换为流式烘焙。 渲染:全管线,正确的合成 • 所有渲染管线。Built-in、URP(Unity 6 Render Graph,带 Compatibility Mode 回退)和 HDRP(Custom Pass)。着色器随包提供,并自动包含在玩家构建中——无需“Always Included Shaders”设置。 • GPU 深度排序。计算着色器中的基数排序在相机移动时重新排序绘制顺序,从不在主线程上进行,在不支持计算排序的情况下自动回退到后台 CPU(具体说明见技术详情)。 • 渲染缩放。将泼溅绘制到缩小的离屏目标再合成:填充成本随 scale² 大致下降,UI 和几何体保持全分辨率。XR 有同一功能的立体声阵列版本。 • 正确的合成。泼溅会与场景进行深度测试,因此扫描内容会正确地位于墙壁和道具后面,而不会浮在它们上面。 • 视角相关颜色。捕捉数据的 SH 频带 1–3 按视角逐一计算,因此光泽、玻璃和潮湿表面会随相机移动而变化(如拍摄时所记录);可按对象切换。Training 是线性项目的默认颜色模式;Legacy 仍可用。远场公告板保留 SH 颜色。 流式加载:固定预算下的城市规模 大规模捕捉无法装入 GPU 内存,因此 SplatBridge 在您设置一次的硬性常驻泼溅预算下对它们进行流式加载。如果在页面对齐和过渡预留后所有最精细的完整切片都能装入,则全细节会自动常驻。否则在同一上限内自适应屏幕空间 LOD。 • 屏幕空间质量。Splat Quality Pixels(τ)以屏幕像素为单位设置细节,默认固定为 2 px。可选的 Auto 预设会选择特定于平台的值。 • 更粗,而非缺洞。计划会先为数据集的每个单元付费,再花钱购买细节,因此预算不足时会被以更粗的绘制方式吸收,而不会丢弃部分场景。 • 发布前心中有数。烘焙日志和检查器会提前给出覆盖门限判定:即使是最便宜的完整视图预算也不够时,会在编辑器中捕获,而不是在设备上才发现。可选的调试日志会打印覆盖率、达到的质量、误差分布和帧时间拐点,因此调优是基于测量而非猜测。 • 固定内存。Max Resident Splats 是硬性内存上限,也是主要的性能杠杆——τ 设置质量。GPU 缓冲区按该大小分配一次,具有每帧上传预算、视锥体裁剪和无闪烁的块交换。 • 预烘焙,运行时从不解码。一键烘焙(.splatbake)将流式 SOG 数据集转换为 GPU 就绪记录,因此运行时块加载就是一次查找和读取,循环中没有图像解码。 • 编辑器中实时。Scene 视图在 Play 之前运行真正的流式循环——相同的工作线程、相同的预算、相同的 LOD 裁剪——收敛后进入空闲;移动相机可恢复。 在 Unity 中编辑扫描 在 Scene View 中选择区域,预览结果,然后拆分、删除或提取。使用五种体积形状、套索或选择笔刷,可同时用于 SplatObjects 和烘焙的 Streamers。添加、减去和交集选择,按不透明度、大小或颜色过滤,并调整所选的颜色/不透明度。删除前可审查孤立簇候选。合并对象并重建 LOD,或导出 SOG、流式 SOG ZIP 或 PLY。Mirror Copy 创建镜像部件;分离的部件是用于 Unity 动画的普通 GameObject。将二进制 3DGS PLY 直接转换为带生成 LOD 的流式烘焙。支持 Clone Repair 和运行时裁剪编辑工具。 • 实时阴影(URP/HDRP)。投射到 Unity Lit 网格上并接收它们的阴影,Cast Shadows / Receive Shadows 开关相互独立,默认均为关闭。这会添加阴影;不会移除扫描中捕捉到的光照。 把它变成游戏 • 碰撞。生成具有可调网格尺寸和占用率的 MeshCollider。Voxel 为默认;平滑和表面拟合可选。可与 Unity 物理和 NavMesh 烘焙配合使用。生成独立于显示的 LOD 读取数据集,需要编辑器内存。这不是运行时流式碰撞。 • 显示/隐藏动画。五种模式(Scatter、FromPoint、Rain、Dissolve、Sweep)在顶点着色器中对实际的高斯进行动画——没有粒子到泼溅的切换跳变,完全显示的那一帧与正常渲染完全一致。它可以等待流式加载器的首次完整覆盖,因此场景会一次性收敛,而不是逐步弹出。 • VFX Graph 桥接。从 VFX Graph 采样实时泼溅缓冲区:在扫描表面上生成粒子,继承其颜色并与显示波同步。手册中有两个可直接粘贴的 HLSL 配方。 • 运行时加载。SplatRuntimeLoader.LoadFromFile(path) 在运行时加载 .sog / .spz / .ply;错误会以类型化异常的形式浮现并说明原因(无法识别的容器、不支持的版本、损坏的数据……),而不是静默失败。 VR——以及实验性的 Meta Quest 独立版 PC VR(URP)是一等目标:Single Pass Instanced 和 Multiview 立体,通过 Link 在 Quest 3 上验证(OpenXR)。排序跟随头部姿态,因此四处看时深度顺序依然正确。 SplatBridge 也可在 Quest 3 独立版(Android、OpenXR、Vulkan、Multiview)上运行——与桌面端相同的导入器、流式加载器、GPU 深度排序和立体路径,一次性 StreamingAssets 提取已为您处理好。今天即可在设备上运行。 独立版被有意标记为实验性。在独立硬件上的性能很大程度上取决于您的捕捉规模和设置,调优工作仍在进行。请将其视为用于原型验证和测量的工具,而非保证特定帧率的平台。 在填充受限处还有一个杠杆:可选的 impostor 将远场烘焙到公告板上,因此实时绘制只需支付近场泼溅的成本。附带的 Quest 场景已开启并调优。 使用附带的调优面板和手册中的 Quest 设置指南,在设备上调整预算、渲染缩放和高斯尺寸。独立版性能仍取决于场景。 附带示例:3 个即用场景 较小的演示下载包含源 SOG。首先在编辑器中打开 ClassroomDemo 并等待流式数据的生成;之后打开会复用已验证的缓存。然后按 Play。 • 演示场景。一个室内教室(1.0M 泼溅,175 MB),可直接游玩:流式加载、视角相关颜色、Sweep 显示、相机轨道和泼溅生成碰撞体上的物理球。 • 调优面板。一个带流式/帧时间遥测和控制器调节(预算、τ、渲染缩放和四边形范围)的即用 VR 场景。 • Quest 场景。XR rig、地板和流式加载器已为独立版预配置。其 README 列出了所需的 Android/OpenXR 项目设置。两个 XR 场景都流式加载教室数据集。 所有附带的数据集都是我们自己的内容——无需署名。 要求 • Unity 6000.x(在 6000.3.25f1 和 6000.6.1f1 上测试)。 • Built-in、URP 17.x 或 HDRP 17.x。 • Windows / macOS 桌面和 Android(包括实验性的 Meta Quest 3 独立版——见上文)。不支持 WebGL(流式加载需要文件 IO 和计算着色器)。 • VR/XR:URP + OpenXR;HDRP + OpenXR 受支持。不支持 Built-in XR。 已知限制 • 泼溅保留捕捉到的光照;场景灯光和 GI 不会重新照亮它们。阴影接收只会增加变暗,不会增加照明。HDRP 曝光/色调映射同时影响两种颜色模式;明亮的 HDR 背景可能需要调整强度。 • Meta Quest 3 独立版支持为实验性(见上文):预留时间用附带的面板调优并围绕此规划。 • SSOG/烘焙 HTTP 流式加载需要范围请求、强 ETag 和 identity 编码。普通 SOG/SPZ/PLY 支持整文件回退,需要临时磁盘空间,并会保留完全解码的 CPU 数据直到停止。实时 SSOG 解码 WebP;烘焙可避免该成本。 • 区域编辑保留现有 LOD;使用 Merge 或 Rebuild LODs 重新生成。大型导出需要临时磁盘空间和内存用于元数据和缓存。套索/笔刷支持前表面、穿透深度和手动深度选择。表面捕捉在大扫描上可能需要更长时间。 • 运行时裁剪改变渲染;不会重建碰撞体。 • 新阴影路径已在桌面 Metal 上验证;XR 和其他图形 API 仍需验证。不支持 Built-in 阴影集成。 路线图(不承诺日期,顺序可能变更) • 我们正在考虑进一步增强编辑工具。 • 独立版 Quest 性能——持续优化移动 GPU 路径,目标是去掉实验性标签 • iOS(iPhone / iPad) 购买者的所有 1.x 更新均免费。 支持的格式 • SOG(PlayCanvas / SuperSplat):打包的 .sog 和未打包的 meta.json,格式版本 2。流式 SOG(lod-meta.json)通过烘焙步骤导入。 • SPZ(Niantic):v3(gzip)和 v4(NGSP + zstd)。v1/v2 会被拒绝并给出明确错误。 • 3DGS PLY:SH 阶数 0–3,二进制小端。 • .splatbake:预烘焙的 GPU 记录和叶表,由导入器或编辑器菜单生成。 • 轴约定:Source Convention 设置(Standard 3DGS——PLY / SOG / SPZ 默认——加上 Y-up 右手、Z-up 右手和 Unity Native)使以其他帧编写的文件朝向正确;碰撞网格遵循它。 渲染 • 导入资源和烘焙流的 SH 频带 1–3。在 1.0.4 中,Training 颜色模式为项目级默认:在训练空间合成和校正泼溅投影时使用线性色彩空间。Legacy 可用于之前的渲染。Source-image 使用额外缓冲区和合成以偏向源图像外观。Legacy 跳过额外的合成,可能会降低 GPU 成本,但颜色、亮度和透明度可能有所不同。性能提升取决于场景、平台和渲染设置。线性是此更新的验证配置。 • 远场公告板烘焙保留 SH 颜色,并在 SH 数据、频带或颜色模式变化时使缓存视图失效。HDRP 保留其实时远场路径。 • Unity 6000.x(在 6000.3.25f1 和 6000.6.1f1 上测试)。 • Built-in RP、URP 17.x(Unity 6 Render Graph,加 Compatibility Mode 回退)、HDRP 17.x(Custom Pass)。着色器位于包内,会自动包含在玩家构建中。 • 深度排序:D3D12 / Vulkan / Metal 上的 GPU 基数排序;其他位置自动使用多线程 CPU 计数排序回退。排序从不阻塞主线程。每帧检查相机姿态;超过小的位移/旋转阈值时触发重新排序。 • 桌面端的泼溅渲染缩放(离屏 + 合成)和 XR 的独立立体声阵列版本,带可选的不透明场景深度遮挡。 VR / XR • URP + OpenXR;HDRP + OpenXR。不支持 Built-in XR。 • Single Pass Instanced 和 Multiview 立体。PC VR 在 Quest 3 over Link(D3D12)和桌面 OpenXR 运行时上验证。使用 XR Origin rig 和 OpenXR 插件。 • Meta Quest 3 独立版:实验性。IL2CPP / ARM64 / Vulkan / Multiview;StreamingAssets 源在首次运行时自动提取到设备存储。包含头显内调优面板示例。 • 可选远场 impostor(默认关闭):常驻的远处叶子每隔几帧烘焙到面向视图的公告板阵列并合成,因此实时绘制只覆盖近处区域。近/远半径由屏幕空间视差误差预算 β(以像素为单位)、焦距和头部移动预算推导——没有需要设置的距离阈值。默认按眼立体烘焙;可选的单声道烘焙写入一个视图加逐像素深度通道,并通过它重新投影每只眼睛,烘焙成本减半。需要 GPU 排序路径。 流式加载 • 当最精细完整切片的页面对齐成本在过渡预留后装入有效预算时自动选择全部;否则应用自适应屏幕空间 LOD;内存上限不变。 • 硬性常驻泼溅预算(单个预分配 GPU 缓冲区);屏幕空间质量指标(τ,尺度不变)带覆盖优先的层级选择——预算不足时渲染更粗而不是丢弃单元。 • 烘焙/检查器覆盖检查报告 Ok、RefinementMarginUnsatisfied(细化余量小)或 CoverageInfeasible(提高预算或重新烘焙)。 • 每帧上传预算、带迟滞的视锥体裁剪、无闪烁块交换、GC 友好的稳定状态。 • 本地文件和可选 HTTP/HTTPS:loose/ZIP/SSOG 和 .splatbake 流式加载选定范围;普通 SOG/meta.json/SPZ/PLY 完全解码。部分读取需要 206、强 ETag 和 identity 编码。普通格式可以在没有范围请求/强 ETag 的情况下回退到完整的临时下载(需要磁盘空间;无持久复用)。有界的、可替换的持久/会话缓存使用操作系统缓存路径,重新打开时在线验证。Loose 数据集需要不可变的版本化目录和相对子 URL;元数据查询不继承。 • 将二进制 3DGS PLY 直接转换为支持 LOD 的 .splatbake,使用基于块的读取和临时文件排序。不需要外部转换工具。导入的 SOG/SPZ/PLY 场景对象也可以通过 LOD 重建进行转换(资源快照仍限制为八百万泼溅)。现有流式 SOG 和 lod-meta.json 集保留其单独的烘焙工作流。 • 编辑器预览(GaussianSplatStreamer 上的检查器开关,Basic 部分,默认开):在 Play 模式之外从 Scene 视图相机驱动相同的流式工作线程、Max Resident Splats 预算和 LOD 裁剪。泵送直到收敛,然后空闲(无玩家循环泵送或重绘),在相机或对象移动时恢复。不标记场景为脏。编辑时在 Game 视图中也可见,使用 Scene 视图相机姿态作为 LOD/排序的近似。编辑器预览期间远场 impostor 保持禁用(仅 Play 模式或设备)。如果大数据集下编辑感觉沉重,关闭开关——流式加载器在 Play 模式之外则处于非活动状态。 游戏玩法集成 • 从泼溅生成 MeshCollider(编辑器右键菜单或运行时 API):标准静态碰撞,适用于 CharacterController、Rigidbody、射线和 NavMesh 烘焙。 • 显示/隐藏动画(5 种模式)在顶点着色器中对实际高斯运行;VFX Graph 桥接采样实时泼溅缓冲区;带类型化异常的运行时加载 API。 编辑器编辑与阴影 • SplatObjects 和烘焙 Streamers 的共享 Scene View 选择:五种形状、套索/笔刷、有序的 Add/Subtract/Intersect 以及不透明度/大小/颜色过滤器。拆分/删除/提取、多轴 Mirror Copy、所选颜色/不透明度调整和孤立簇审查。套索/笔刷支持前表面选择、全深度选择和手动深度范围。套索可选择中心或相触的投影椭圆;笔刷选择中心。表面选择使用所选目标的捕捉视图,在大扫描上可能需要更长时间。 • Merge 合并完整的最精细数据、变换和 SH,然后重建空间分区和 LOD 到新的 Streamer。单对象 LOD 重建也可用。本地烘焙输入使用临时磁盘文件;Renderer 合并快照保留八百万合并上限。Merge 要求统一的对象缩放和兼容的渲染设置。碰撞体/动画不合并。 • SOG v2、流式 SOG ZIP(可选重建 LOD)和二进制 PLY 导出不需要外部工具。本地烘焙导出读取有界块;元数据、缓存和临时文件仍需要内存/磁盘。Renderer 导出复制其资源。SOG 是量化的;导出保留源本地属性,而非场景光照或运行时裁剪。 • Clone Repair(捐赠者选择器和带旋转/缩放/颜色控制的平面笔刷)和运行时裁剪可用。Runtime Clip 具有独立的纯形状选择、目标 Fit、最多八个动画子区域、有序操作或 OR/AND,以及可选的像素裁剪。它不重建碰撞体。 • URP/HDRP 实时阴影:独立的 Cast Shadows / Receive Shadows,默认关闭。Directional/Point/Spot;HDRP 还有 Rectangle。投射使用常驻泼溅;接收默认为 Shared Surface 并附带自动生成的网格,Direct 也可用。共享表面近似几何体。接收绕过远场颜色缓存。成本取决于场景和阴影设置。无烘焙 GI/Shadowmask、光线追踪阴影或 Built-in 阴影集成。保留捕捉到的照明。桌面 Metal 已验证;Shared Surface 面向桌面单声道。阴影路径尚未在 XR 或其他图形 API 上验证。 依赖与代码 • 纯 C# 解码器(包括 WebP VP8L 解码器)——无原生插件,无 P/Invoke;唯一的附带托管 DLL 是 ZstdSharp 和 System.Runtime.CompilerServices.Unsafe。包含第三方声明(MIT)。 • 包含源代码——所有内容安装到单个文件夹 Assets/SplatBridge。Assembly definitions 将 Runtime 和 Editor 分离。 • 所有附带演示数据均为发行商原创内容:一个合成场景(从 CC0“Classroom”Blender 演示文件渲染——公有领域,无需署名——并用我们自己的高斯泼溅管线重建)和一个我们拍摄的照片捕捉。包中没有任何内容带有署名要求。包含归属叠加辅助组件,并在演示场景中预连线,用于您自己的需要署名的捕捉。 不支持 • WebGL(流式加载需要文件 IO 和计算着色器)。 • AI 修复和曲面克隆绘制。 • 视角相关颜色(SH 频带 1–3)每个常驻泼溅消耗单独缓冲区中的 18 / 48 / 90 字节(fp16);可按对象切换,Quest 示例默认关闭。SH Bands 0 禁用视角相关性;选择 1–3 启用。频带更改在重新加载时生效。加载前禁用可避免 SH GPU 缓冲区;加载后关闭会保留该缓冲区。实时流式 SOG 源仅流式传输基础颜色。 演示分发:源 SOG 包含在 Editor 下。首次打开场景会将其转换为已验证的 StreamingAssets 烘焙,之后打开复用。不覆盖现有不匹配的文件。玩家中只使用烘焙。 文档:包内有完整手册、故障排查表和调优指南(英文和日文)。

SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 3SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 4SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 5SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 6SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 7SplatBridge——3D 高斯泼溅:导入、流式加载与游玩真实世界扫描 · Unity 插件 · 预览图 8