桌面应用图形学3D渲染计算机视觉【免费下载链接】ooosplatA local desktop app that turns videos and images into 3D Gaussian Splats in one click.项目地址https://gitcode.com/gh_mirrors/oo/ooosplat点击查看免费下载OOOSplat 是一款本地桌面应用能把视频和图片一键转换成 3D 高斯泼溅3D Gaussian Splats模型并提供可交互的 3D 预览视口。这篇文章聚焦它的预览渲染层OOOSplat 如何用 PlayCanvas 引擎在 WebGPU / WebGL2 双后端下渲染数百万高斯泼溅点为什么排序策略选择CPU 深度排序 GPU 光栅化以及大体积 PLY 模型是如何被分块流式加载的 ️ 双渲染后端WebGPU 优先WebGL2 兜底OOOSplat 的预览视口构建在 PlayCanvas。它并不押注某一种图形 API而是给渲染设备一个优先级列表优先级图形后端说明1️⃣WebGPU新一代 GPU API计算/排序能力更强2️⃣WebGL2兼容性最好的兜底方案这份优先级定义在 PreviewBackend.ts 中独立的 HTML 预览导出viewer.ts也使用同样的[DEVICETYPE_WEBGPU, DEVICETYPE_WEBGL2]顺序创建渲染设备。这样做的好处很实际新显卡走 WebGPU 拿性能老设备自动回落到 WebGL2用户几乎无感。视口状态栏会实时显示当前后端例如WEBGL2 / UNIFIED GSPLAT方便排查性能问题。下面就是 OOOSplat 的 3D 预览视口渲染的是一处住宅区的高斯泼溅重建场景 高斯泼溅排序为什么选 CPU 深度排序3D 高斯泼溅渲染最大的技术难点是排序每个高斯椭球都是半透明的必须先远后近合成画面才对。PlayCanvas 提供了多种排序器但 OOOSplat 特意在 PreviewBackend.ts 中写死了一种app.scene.gsplat.renderer GSPLAT_RENDERER_RASTER_CPU_SORT;源码注释说得很直白当前版本的 GPU 排序在部分模型上会出现重叠与混合错误而CPU 排序 GPU 光栅化的组合是验证过的稳定方案。这套分工可以这样理解CPU 排序每帧把数百万高斯中心按与相机的深度排好序保证前后遮挡关系正确GPU 光栅化真正的高负载绘制椭球展开、颜色混合全部丢给 GPU。排序是否完成是可以等的——视频导出时每渲染一帧都会调用waitForSplatFrameGaussianViewer.tsx监听 PlayCanvas 的frame:ready事件并设置了 8 秒的排序超时避免导出卡死。 大文件流式加载PLY 如何分块进入显存重建出的 PLY 文件动辄几百 MB。OOOSplat 在 SplatRangeSource.ts 里定义了两条规则文件大于256 MB时改用 HTTP Range 分块读取每块1000 KiB受桌面端资产协议单次响应上限约束拼成ReadableStream交给引擎。同时 SplatLoadPolicy.ts 会做一次显存体检高斯泼溅数据会打包进一张√N × √N的纹理如果边长超过显卡的maxTextureSize就直接给出容量错误提示而不是等到渲染崩溃。这是生成任务与预览入口所在的工作区历史任务列表里每个项目都能一键进入上面的 3D 预览✨ 预览动画一段着色器驱动的开场秀进入预览模式时模型会先以粒子形态从中心绽放再来一圈冲击波最后恢复成实体并自动环绕一圈——整段 15 秒的动画完全由 GPU 着色器驱动实现在 PreviewAnimation.tsGLSL 版与 第 222 行起的 WGSL 版两种着色器语言双份维护正好对应 WebGPU / WebGL2 两条渲染路径。动画通过 PlayCanvas 的work buffer modifier钩子注入每渲染一个高斯时执行modifySplatCenter/modifySplatRotationScale/modifySplatColor三个回调用位置哈希决定哪些粒子飘散、哪些保留再按径向距离控制透明度实现逐帧生长效果。同样的机制还支撑了矩形圈选功能GaussianSelectionController.ts 里的着色器把每个高斯中心变换到裁剪空间判断它是否落在你拖出的矩形内命中的高斯随即高亮为橙色——全程在 GPU 上完成几十万点也不会卡顿。️ 相关源码导航模块作用PreviewBackend.tsWebGPU/WebGL2 优先级与 CPU 排序配置GaussianViewer.tsx预览视口主组件、状态机与导出流程PreviewAnimation.ts开场动画着色器GLSL WGSL 双版本SplatRangeSource.ts大 PLY 文件的分块 Range 流式加载SplatLoadPolicy.ts显卡纹理容量检测CoordinateSystem.tsPLY 坐标系到引擎坐标系的映射旋转 180°html-viewer/viewer.ts独立 HTML 预览导出同样复用双后端策略 小结OOOSplat 的 3D 预览渲染可以概括为三句话WebGPU 优先、WebGL2 兜底的双后端策略保证兼容性CPU 排序 GPU 光栅化保证高斯泼溅的前后遮挡始终正确Range 分块加载 纹理容量预检保证大模型进得去、崩不了。这正是它在普通消费级显卡上也能流畅预览数百万高斯泼溅点的原因 赞分享桌面应用图形学3D渲染计算机视觉【免费下载链接】ooosplatA local desktop app that turns videos and images into 3D Gaussian Splats in one click.项目地址https://gitcode.com/gh_mirrors/oo/ooosplat点击查看免费下载相关推荐Make Me a Hanzi9000 汉字的笔画动画与结构数据你的学习应用离它只差一次 cloneMake Me a Hanzi9000 汉字的笔画动画与结构数据你的学习应用离它只差一次 clone 你半夜想给娃做一个练字 App然后卡住了 假设你是数据集教育XV3DGS-UEPluginUE5高斯泼溅渲染完整指南XV3DGS UEPluginUE5高斯泼溅渲染完整指南 想要在Unreal Engine 5中实现惊艳的3D重建效果吗XV3DGS UEPlugin这款高图形学3D渲染计算机视觉深度学习3D高斯泼溅渲染插件虚幻引擎5实时渲染技术完全指南3D高斯泼溅渲染插件虚幻引擎5实时渲染技术完全指南 想要将普通视频瞬间转化为惊艳的3D场景吗XV3DGS UEPlugin基于前沿的3D高斯泼溅技术为你带图形学3D渲染计算机视觉深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考