如何用多个高斯泼溅合成新的场景【3DGS】

news2024/12/28 18:14:07

3D高斯泼溅(3D Gaussian Splatting)作为一种突破性摄影测量和可视化技术作为 SIGGRAPH 2023 上发表的研究论文的一部分发布。我相信3DGS是允许像你我这样的日常用户扫描 3D 的最佳现代方法并保留有机材料的精细细节,尤其是植物、树木、花卉和其他自然元素——所有我们希望在街道上看到更多的东西!

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

这仍然是一个研发项目,尚未成为 3DStreet 支持的内置功能。在这篇文章中,我们分享了关于如何在 Three.js 和 A-Frame(支持 3DStreet 的底层 3D 框架)中使用深度缓冲区和选择性 splat 丢弃来改进从多个 splat 合成新场景的视觉外观的研究和进展。

1、3DGS爆炸!

大量3GS工具已经进入市场——使用手机进行3D扫描的创建应用程序(Polycam和Luma)以及适用于所有可以想象的平台和设备(太多而无法列出)的查看器,甚至是基于浏览器的裁剪和编辑工具。

然而,现有的高斯泼溅研究和开发大部分都集中在只有一个大splat的场景。

通过 3DStreet,我们正在探索一些新的东西——利用现有 3D 碎片构建全新的街道场景。

2、问题:three.js 中同时渲染多个 splats 很难

如果我们可以在场景中绘制一个高斯泼溅,为什么不能绘制更多呢?事实证明这很难。现有的 Three.js / A-Frame splat 查看库尚不支持合成,因此它导致人们无法将其用作产品,例如这个消防栓和树被更远的花箱遮挡。

为了解决这个问题,我们与 WebXR 和全栈开发人员 Arthur Mougin 合作,他很高兴能够应对新的挑战。这是他关于我们如何启用正确的 splat 排序的文章,最后对接下来的内容进行了一些讨论。

2、正确设置深度缓冲区

在分析了 Threejs 的着色器和渲染管道之后,我们首先确定我们需要有适当的场景级遮挡。

在场景层面,Splats 只是具有独特绘制方法的经典不透明对象。这很好,因为我们可以利用深度缓冲区。这是一个灰度图像,着色器用它来知道它们的像素是否低于或高于已绘制的内容。默认情况下,splats 不会写入其中,当绘制顺序与深度顺序不匹配时,会导致奇怪的伪像。递归遮挡也是如此。

因此,我们添加了使用 depthWrite:true 将渲染的图块写入深度缓冲区的功能。打开它可以极大地改善我们的遮挡问题。

3、修复边框和边缘混合问题

有时边界并不完全干净,我们也想要一种方法来改进它。

这次是在片段着色器中完成的,其中丢弃导致像素不被绘制。我们比较每个斑点像素的不透明度,如果它低于我们的限制,则不会渲染。

此限制(即丢弃过滤器)在设置为 0 时无效,但有助于清除不必要的斑点,这些斑点可能会破坏两个图块之间的正确过渡。由于它适用于所有 splat 的斑点,因此打开它会影响 splats 的质量。

不幸的是,不同方法之间需要权衡。正如你在下面的下一个示例中所看到的。右侧是带有不考虑遮挡的原始 A-Frame splatting 组件的测试场景。左侧使用深度写入,它可以正确地对树、消防栓和花箱的遮挡进行排序,但也会导致在花箱底部与人行道相交处特别明显的伪影。

调整 discardFilter可以让你控制找到正确的值,但是当你继续增加丢弃过滤器值接近 1 时,板片开始在基材上形成孔,并且看起来距离更远。

对伪像的部分有效缓解是使用 PlayCanvas 的 SuperSplat 等工具严格裁剪你的 splats。

4、更新 aframe-gaussian-splatting 存储库

过去,我们一直直接对原始A-Frame Gaussian Splat仓库做出更改,Arthur建议了包含这些更改的PR,但我们想在这些更改能够合并之前发布这篇文章,所以我们分叉了这个repo目前在 3DStreet GitHub 组织中。

GitHub |  演示场景(使用 WASD 键移动) | 演示场景源(也使用剪切实体)

5、结合光栅化方法

现在我们的库支持 splat 合成,是时候测试它们在 3DStreet 场景中的样子了。

我们创建了一个示例场景,该场景加载 3DStreet 街道场景,其中手动放置的 splat 实体放置在场景周围的适当位置。这是第一次尝试了解图块与场景的契合度,以及我们需要对 3DStreet 编辑器进行哪些更改以支持使用用户界面管理这些图块。

此图显示了混合轿车和公交车站的 splat 和低多边形网格对应物的并排视图:

由于每个图块都是 A 形框架实体,因此 3DStreet 编辑器可以提供一种快速的方法来移动它们并排列自定义场景:

6、结束语

我们创建了一个概念验证演示,其中显示了我在旧金山周围扫描的图块,并结合了从 3DStreet 自动创建的多边形网格模型。

这仍然是一项研究技术。即使就在过去的一周,Luma AI 发布了一个全新的 WegGL splat 查看库,而且关于这个主题的更多研究似乎每周都在更新。我们提出的方法可能很快就会被一种奇特的新算法所取代。

我们将继续迭代该技术在街道安全和更一般的城市设计用例中的应用。如果这引起了用户的共鸣,我们可以探索如何使其易于访问,以便所有用户都可以使用他们从自己的街道扫描的模型创建自定义的 splat 场景。


原文链接:用多个splat合成新场景 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL注入实例(sqli-labs/less-1)

初始网页 从网页可知传递的参数名为 id,并且为数字类型 1、得知数据表有多少列 1.1 使用联合查询查找列数(效率低) http://localhost/sqli-labs-master/Less-1/?id1 union select 1,2 -- 1.2 使用order by查找列数(效率高&…

Java | Leetcode Java题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 low;int x matrix[mid / n][m…

HADOOP之YARN详解

目录 一、YARN的简介 1.1 MapReduce 1.x 1.1.1 MapReduce 1.x的角色 1.2 YARN的介绍 1.3 YARN的设计思想 二 YARN的配置 1. mapred-site.xml 2. yarn-site.xml ​编辑 3. hadoop-env.sh 4. 分发到其他节点 5.YARN的服务启停 6. 任务测试 三 YARN的历史日志 1. 历…

寻找最佳App分发平台:小猪APP分发脱颖而出

在当今移动应用市场日益饱和的环境下&#xff0c;选择一个合适的App分发平台对于开发者来说至关重要。这不仅关系到应用能否快速触达目标用户&#xff0c;还直接影响到品牌的塑造与市场份额的争夺。本文将深入探讨几大关键因素&#xff0c;帮助开发者判断哪个App分发平台最适合…

数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)

数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储&#xff08;20240508&#xff09;1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数…

Debian——安装syzkaller——2024

系统:Debian 远程连接——我是不想安装tools没有办法复制黏贴,所以远程,根据个人情况选择是否远程连接 就是说使用Windows自带的远程mstsc,使用的不是ssh22端口,是TCP 3389端口 mkdir debian cd debian 二:安装go编译器 打开终端。使用wget命令从官方网站或可信的镜像…

Flink 部署模式

目录 概述 部署模式 会话模式&#xff08;Session Mode&#xff09; 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式&#xff08;资源管理模式&#xff09; Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…

「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)

本教程将指导您如何生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序&#xff0c;该应用程序为域模型实现了CRUD应用程序模式。在本教程中&#xff0c;您将学习如何&#xff1a; 安装Google Eclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译…

护眼灯作用大吗?分享五款优质护眼台灯,守护视力健康

护眼灯作用大吗&#xff1f;这是许多人在考虑选购护眼台灯时会思考的问题。其实只要是有使用过护眼台灯的会发现&#xff0c;它发散出来的光线柔和&#xff0c;能够有效防蓝光、眩光&#xff0c;这样的光线环境对眼睛十分友好&#xff0c;从而能够有效缓解视觉疲劳。随着现代生…

图片8位, 16位,24位,32位原理,以及如何进行补位互转

写在前面&#xff1a;之前一直没有这个概念&#xff0c;以为像素就是十六进制如 #FFFFFF&#xff0c;或者rgb(255,255,255) 即可实现颜色定义&#xff0c;理解相当肤浅&#xff0c;接触到一个物联网项目&#xff0c;写底层的童鞋让我把16位如 0*FFFF转为24位去显示在浏览器&…

美业SaaS系统多门店收银系统源码-【分润常见问题】讲解(二)

美业管理系统源码 博弈美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 ▶ 分润常见问题&#xff1a; 4、若产品的服务方分润>0&#xff0c;则销售方分润和服…

考研管理类联考(专业代码199)数学基础【3】函数、方程、不等式

一、函数 1.一次函数 y kx b(k≠0) 的图象及性质 2.二次函数y ax^2 bx c的图象和性质 3.指数函数y a^x &#xff08; a&#xff1e;0&#xff0c;且a≠1&#xff09;的图象和性质 4.对数函数y logₐx ( a&#xff1e;0&#xff0c;且a≠1)的图象与性质 二、方程 1.一元…

大数据和AI在半导体生产系统中的应用

大数据和AI在半导体生产系统中的应用场景非常广泛,涉及从设计、制造到质量控制和市场分析的各个环节。以下是一些具体的半导体大数据应用场景、技术原理、以及实现这些应用的具体做法和方法: 01、半导体大数据应用场景 1. 预测性维护 - **应用场景**:预测设备故障,提前…

android图标底色问题,debug与release不一致

背景 在android 8&#xff08;sdk 26&#xff09;之前的版本&#xff0c;直接使用图片文件作为图标&#xff0c;开发时比较容易控制图标&#xff0c;但是不同的安卓定制版本就不容易统一图标风格了。 在android 8及之后的版本&#xff0c;图标对应的是ic_launcher.xml&#x…

充电宝哪个牌子好更耐用?2024年耐用充电宝不能错过

随着科技的进步和智能手机的普及&#xff0c;我们的生活已经与手机紧密相连。然而&#xff0c;手机电量的限制却常常让我们感到焦虑和不安。一旦手机没电&#xff0c;我们就仿佛失去了与外界联系的能力&#xff0c;无法及时接收重要信息、进行导航或支付。为了解决这个问题&…

运放的同相与反相放大

反相放大器 同相端接地&#xff0c;电压为 0&#xff0c;反相端和同相端虚短&#xff0c;因此也是 0 V 的电压&#xff0c;同时由于虚断&#xff0c;几乎没有电流注入&#xff0c;所以R 1 和R 2 相当于串联&#xff0c;电阻上的电流相等 因此可以求出输入输出关系式为 V o u t…

【python数据分析基础】—pandas透视表和交叉表

目录 前言一、pivot_table 透视表二、crosstab 交叉表三、实际应用 前言 透视表是excel和其他数据分析软件中一种常见的数据汇总工具。它是根据一个或多个键对数据进行聚合&#xff0c;并根据行和列上的分组键将数据分配到各个矩形区域中。 一、pivot_table 透视表 pivot_tabl…

gitee 简易使用 上传文件

Wiki - Gitee.com 官方教程 1.gitee 注册帐号 2.下载git 安装 http://git-scm.com/downloads 3. 桌面 鼠标右键 或是开始菜单 open git bash here 输入&#xff08;复制 &#xff0c;粘贴&#xff09; 运行完成后 刷新网页 下方加号即可以添加文件 上传文件 下载 教程…

谷底入场,2024年普通人如何布局大健康赛道?_产业_发展_市场

【181、2077、9182】 坐标&#xff1a;厦门&#xff0c;我是易创客运营肖琳 深耕社交新零售行业10年&#xff0c;主要提供新零售系统工具及顶层商业模式设计、全案策划运营陪跑等。 今天为大家介绍普通人如何布局大健康赛道。 马云曾经说&#xff0c;未来10年能够超越阿里的…

医院预约挂号|基于Springboot+vue的医院预约挂号系统小程序的设计与实现(源码+数据库+文档)

医院预约挂号系统小程序 目录 基于Springboot&#xff0b;vue的医院预约挂号系统小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1小程序端 后台功能模块 4.2.1管理员功能 4.2.2医生功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…