3DGS高斯泼溅渲染简单理解

本文主要是对比游戏开发时的建模渲染过程来简单理解,尽量不涉及学术和数学原理

传统建模渲染过程

https://zhuanlan.zhihu.com/p/137780634

可以看上面这个大佬的复习一下

3DGS(3D Gaussian Splatting)

假设重建一棵树,绿色的点就是特征点(点云),绿色的椭圆体就是高斯体(个人觉得理解成任揉任搓的柔边椭圆体就行)

  1. 稀疏点云初始化: 通常使用 SfM (Structure from Motion) 算法(一种几何数学公式驱动的算法)从多张照片 (通常要几百张)中提取特征点 ,生成一个非常简陋的初始点云。

    ps.点云就是点,每个点最基本的信息就是 (x, y, z)坐标。

  2. 点云变高斯体: 算法在每个"点"的位置,放上一个高斯体

  3. 投影与光栅化: 将这些 3D 高斯体投影到 2D 屏幕平面上渲染。

    1. 投影 (Projection): 把 3D 的椭球体"拍扁"到 2D 屏幕上,变成一个带渐变的圆环或椭圆。

    2. 排序 (Sorting):gpu会将这些"圆环"按离相机的远近进行排序。

    3. Alpha 混合 (Alpha Blending): 这步是 3DGS 的核心。

      它不像 Mesh 那样"非黑即白"(要么在三角形内,要么在外面)。

      每一个高斯点都有透明度。渲染时,它会像叠多层半透明胶片一样,把远近不同的高斯点颜色叠在一起。


接下来的阶段是模型训练上的东西可无视,可以简单理解成它就是能自己迭代出一个比较好的版本输出一个3d模型

高斯点/体:

高斯点(Gaussian Point)和高斯体(Gaussian Spheroid/Ellipsoid)在 3DGS 的语境下其实是指同一个东西。

称它为"点"时: 侧重于它在空间中的中心位置,即它继承自原始点云的那个坐标。

称它为"体"时: 侧重于它具有体积、形状和透明度,它不再是一个无限小的几何点,而是一个有范围的概率分布。

  1. 计算误差: 将渲染出来的图像与真实的摄影照片对比,计算 Loss。

  2. 反向传播: 通过梯度下降调整每个高斯点的位置、形状、颜色和透明度。

  3. 致密化(Adaptive Density Control):如果某个地方太模糊,算法会自动分裂(Split)高斯点。如果某个地方点太多没用,算法会修剪(Clone/Remove)多余的点。


目前有一个比较火的方向是根据较少数量照片/提示词输出一个3d的模型

较少数量照片

扩散模型驱动 (Generative/Diffusion Based)

就是 AI 先根据你的一张照片,生成出 6-8 张不同角度(左、右、背、顶)的"幻觉照片"。

然后继续走3dgs多视角重建的流程

前馈神经网路 (Feed-forward / DUSt3R)

  1. 坐标映射: AI 直接预测每个像素在 3D 空间里的相对坐标 (x, y, z)。

  2. 点云 对齐: 如果是视频或几张照片,它直接在 3D 空间里把这些预测出来的点"吸附"在一起。

  3. 模型输出的就是带深度的点云或者高斯体,再去和原始图像比较迭代出合理的构成。

提示词创建模型

这个过程不需要任何真实的 3D 模型或照片,只需要两个 AI 组件:

  1. 打分员(2D 扩散模型): 比如 Stable Diffusion。它在几亿张图片上训练过,它非常清楚"一只赛博朋克风格的猫"长什么样。

  2. 学生(3DGS 场景): 一个随机扔在空间里的、乱七八糟的 3D 高斯团。

生成流程(迭代循环)

  1. 随机观察: 算法随机选一个视角(比如俯视 45 度),让 3DGS 渲染出一张当前的图片。刚开始,这张图只是一团模糊的彩色噪音。

  2. 加噪与去噪: 算法给这张渲染图加一点点噪声,然后扔给 Stable Diffusion,并告诉它提示词:"这是一只赛博朋克猫"。

  3. 打分(计算梯度): Stable Diffusion 会尝试把这张图"修"得更像猫。它会告诉 3DGS:"按照我的理解,左上角这块像素应该更亮一点,颜色应该更蓝一点,这样才像赛博朋克。"

  4. 反向传播 : 3DGS 收到这个"修改意见",通过反向传播去调整空间中几百万个高斯 体的位置、形状和颜色。

  5. 循环往复: 换个视角(比如平视、背面),重复上述过程。

结果: 经过几千次迭代,3DGS 为了在每一个视角下都能通过 Stable Diffusion 的"审美检查",被迫把自己排列组合成了一个符合提示词描述的 3D 形状。

相关推荐
西红柿炖牛腩3545 小时前
数字孪生大屏场景模型几个 G,Draco 3D 模型压缩和减面该怎么排顺序
3d·大屏端
3D可视化大侠5 小时前
DPE 工程怎么交付到自有系统:GLB 导出与 SDK 集成实践
3d
总要学点什么6 小时前
第47篇:三维特效-雷达波效果——波纹一圈圈往外推,一半却埋在地下
3d·前端框架·gis·webgl·cesium
Shirley~~1 天前
Three.js的基础概念
前端·3d
Zldaisy3d1 天前
GAMS 2026: 增材制造无国界
3d·制造
浦信仿真大讲堂1 天前
用好 CST View Options:把3D操作环境调到更顺手,也更高效
3d·cst软件·达索软件
oioihoii1 天前
Pascal Editor 3D建筑编辑:墙体门窗、2D与3D视图及WebGPU建模
3d
千殇华来2 天前
3d打印的材料选择
3d·材料工程
Martina_03212 天前
山谷地形下雨后湿痕总往坡上爬?用6步检查高度场、流向遮罩与分区加载
人工智能·游戏·数学建模·3d·自然语言处理·aigc·关卡设计
belldeep2 天前
AI-3D 真人剧如何制作
人工智能·3d·ai