3D Gaussian Splatting 渲染过程

这篇具有很好参考价值的文章主要介绍了3D Gaussian Splatting 渲染过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给定一组三维高斯点,渲染步骤大致为:1.camera space转成ray space 2.对像平面进行分块,然后对高斯排序 3.正投影发出射线进行α-blending

1. camera space->ray space,3D Gaussian->2D Gaussian

这个步骤将NeRF中的投影过程变为了正投影,引入了ray space的概念,让3D Gaussian 变为2D Gaussian.

  • 透视投影和正投影                   

3D Gaussian Splatting 渲染过程,3d,人工智能

一般的渲染过程都是透视投影,所有发出的ray都从camera发出,故而有个交点。splatting的方法则是用正投影,发射的ray全部平行于像平面。

3D Gaussian splatting的前期步骤就是将camera space转成ray space,本质就是将透视投影转变为正投影,让3D Gaussian转变为2D Gaussian,这样就免去了一大堆光线求交的计算。

  • ray space

给定一个ray space的坐标点(x0,x1,x2),其中(x0,x1)代表该点透视投影到图像上的坐标点,x2代表视点即camera到该点的距离。

假如给定其对应的camera space坐标点为(u0,u1,u2),则两者转换为:

3D Gaussian Splatting 渲染过程,3d,人工智能

  • 3D Gaussian->2D Gaussian

 camera space->ray space 的变换有一个特点:非仿射变换。仿射变换是可以用一个统一的线性变换矩阵将所有点的坐标进行转换,而根据上面的两个式子可以发现,每个点的ray space坐标都是以自身的camera space坐标为自变量的非线性函数,故并没有一个统一的变换矩阵。

 为了解决这个问题,作者采用了一个近似的方法,即用每个三维高斯的中心点的变换矩阵近似为各自的变换矩阵,这样对于每个高斯来讲,都是仿射的变换。而这个矩阵被称为雅可比矩阵J。

3D Gaussian Splatting 渲染过程,3d,人工智能

当然这样也使得每个高斯的大小不能太大,否则就会产生精度问题。

结合上述,则对于每个给定的三维高斯的协方差矩阵V'',以及其world space下的中心点坐标(u0,u1,u2),我们可以求得ray space下的高斯协方差。由于给的是world space下的坐标,所以得先乘以旋转平移矩阵W转化为camera space坐标,然后通过中心点坐标求出雅可比矩阵J,ray space下的高斯协方差就如下:

3D Gaussian Splatting 渲染过程,3d,人工智能

由于是正投影,故直接取最后的三维高斯协方差的前两行两列就是投影到像平面上的二维高斯协方差矩阵。 

二维高斯的中心点坐标就是camera space下的u0,u1除以第三维u2,即(u0/u2,u1/u2)

这样就将空间中的三维高斯转化为像平面上的二维高斯。

2. 分块排序  

为了渲染时能正确考虑到高斯之间的遮挡关系,需要对高斯进行基于深度的升序排序。

算法中还采用了分块的策略,将像平面分为16*16,每一块选取投影到这一块的二维高斯,对于覆盖多个块的高斯,每个覆盖块都会选取到它。然后每一块将选取好的高斯基于深度进行基数排序,得到距离像平面从近到远的16*16个各自排序好的高斯列表 。

对于为什么要分块,笔者猜测应该是为了渲染时能够减少计算量,否则每个像素颜色值可能根据所有高斯继续计算。

3. α-blending 

3D Gaussian splatting 也是对每个像素发出一条射线。

首先根据高斯的sh参数,得到高斯的颜色c

接着,计算高斯的不透明度alpha,即f(p),alpha要根据高斯的不透明度参数α以及像素点坐标和二维高斯中心的距离得到。

3D Gaussian Splatting 渲染过程,3d,人工智能

3D Gaussian Splatting 渲染过程,3d,人工智能文章来源地址https://www.toymoban.com/news/detail-807774.html

到了这里,关于3D Gaussian Splatting 渲染过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

    3D Gaussian Splatting for Real-Time Radiance Field Rendering 论文:link code:link video:link 1. 开山之作 Nerf 一切的开始都是起源于 NERF 开山之作 这里由详细的学习与拆解 【NERF】入门学习整理(一) 【NERF】入门学习整理(二) 【NERF】入门学习整理(三) 【NeRF数据集】LLFF格式数据集处理co

    2024年04月15日
    浏览(57)
  • 3D Gaussian Splatting

    本文转载于大佬~~ 这是3D Gaussian Splatting综述, 先回顾3D Gaussian的原理和应用,借着全面比较了3D GS在静态场景、动态场景和驾驶场景中的性能,最后为未来指明了研究方向! 三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新

    2024年04月08日
    浏览(41)
  • 【辐射场】3D Gaussian Splatting

      , 3D Gaussian Splatting,下文简称3DGS,是好一段时间以来在三维内容创作和三维重建领域比较有热度的一项技术。 它属于 基于图像的三维重建方法 ,意思就是你对现实物体或者场景拍照片,就能给你训练成一个场景模型,能够被渲染出来给你看。 它产生的模型可以作为三维

    2024年02月03日
    浏览(32)
  • 3D Gaussian Splatting的使用

    今年SIGGRAPH最佳论文,学习了一下,果然厉害,具体论文原理就不说了,一搜都有,主要是看看怎么用,自己能不能把身边的场景快速建个模。 赶紧记录下,好像这几天在这个基础上又有很多花样出来了… 我的系统是Ubuntu22.04。 开源作者已经都弄的很详细了,也有教程。 首

    2024年02月04日
    浏览(34)
  • 3D Gaussian Splatting文件的压缩【3D高斯泼溅】

    在上一篇文章中,我开始研究高斯泼溅(3DGS:3D Gaussian Splatting)。 它的问题之一是数据集并不小。 渲染图看起来不错。 但“自行车”、“卡车”、“花园”数据集分别是一个 1.42GB、0.59GB、1.35GB 的 PLY 文件。 它们几乎按原样加载到 GPU 内存中作为巨大的结构化缓冲区,因此

    2024年02月03日
    浏览(22)
  • 3D Gaussian Splatting:论文原理分析

    标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkühler和George Drettakis,来自法国Inria、Université Côte d\\\'Azur和德国Max-Planck-Institut für Informatik。 发表时间:2023年8月,ACM Transactions on Graphics上,卷号42,编号4 提出了一种名为3D Gaussia

    2024年01月23日
    浏览(35)
  • Awesome 3D Gaussian Splatting Resources

    GitHub - MrNeRF/awesome-3D-gaussian-splatting: Curated list of papers and resources focused on 3D Gaussian Splatting, intended to keep pace with the anticipated surge of research in the coming months. 3D Gaussian Splatting简明教程 - 知乎 

    2024年01月20日
    浏览(43)
  • 3D Gaussian Splatting学习记录11.2

    cmd输入以下命令,开始训练 整个训练(30,000步)大约需要20分钟,但7000步后会保存一个中间模型,效果已经很不错了。训练结束后得到output文件 在Ubuntu 22.04上,运行以下命令来构建可视化工具: 安装后,找到SIBR_gaussianViewer_app二进制文件,并以模型的路径作为参数运行它: 参

    2024年02月04日
    浏览(49)
  • 3d gaussian splatting笔记(paper部分翻译)

    本文为3DGS paper的部分翻译。 基于点的𝛼混合和 NeRF 风格的体积渲染本质上共享相同的图像形成模型。 具体来说,颜色 𝐶 由沿射线的体积渲染给出: 其中密度 𝜎、透射率 𝑇 和颜色 c 的样本是沿着射线以间隔 𝛿 𝑖 采集的。 这可以重写为 典型的基于神经点的方法通过

    2024年01月24日
    浏览(32)
  • 3D高斯泼溅(Gaussian Splatting)通俗解释

    项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of \\\"3D Gaussian Splatting for Real-Time Radiance Field Rendering\\\" 功能:拍摄一段视频或多张图片,可以重建3维场景并能实时渲染。 优点:质量高、速度快。 缺点:占用

    2024年02月22日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包