Vulkan 3D Gaussian Splatting 本地部署与运行:从 PLY 模型到实时渲染

一、前言

近几年,三维重建和实时渲染领域出现了一个非常热门的方向:3D Gaussian Splatting,简称 3DGS。

传统三维渲染通常依赖三角网格,也就是:

复制代码
顶点 Vertex
索引 Index
三角形 Triangle
材质 Material
纹理 Texture

而 3D Gaussian Splatting 的思路不太一样。它不是用大量三角形去描述一个场景,而是使用大量带有位置、方向、尺度、颜色、透明度等属性的 三维高斯体 来表示场景。论文《3D Gaussian Splatting for Real-Time Radiance Field Rendering》提出这种表示方式后,能够在保持较高视觉质量的同时实现实时新视角渲染。论文摘要中也明确提到,该方法面向实时显示,在 1080p 分辨率下达到实时渲染目标。(arXiv)

本文要复现的项目是 NVIDIA 开源的:

复制代码
nvpro-samples / vk_gaussian_splatting

这是一个基于 Vulkan API 的 3D Gaussian Splatting Viewer。注意,它不是训练工具,不负责从图片生成 3DGS 模型,而是负责把已有的 .ply 或 .spz 高斯模型实时渲染出来。官方 README 明确说明该项目是一个 viewer,不生成或训练模型,而是尽可能高速地可视化已有模型。(GitHub)

项目本身支持多种渲染管线,包括:

复制代码
Rasterization 光栅化渲染
Ray Tracing 光线追踪渲染
Hybrid Rendering 混合渲染
Unscented Transform
Stochastic Transparency
Lighting and Shadows

官方文档也将这些内容作为 Deep Dives 技术章节单独展开,说明这个项目不仅适合看效果,也很适合研究 Vulkan 渲染管线和实时渲染优化。(GitHub)


二、为什么选择 vk_gaussian_splatting?

我选择这个项目主要有几个原因。

第一,它足够新。项目在 2025 年之后持续更新,README 中的更新记录显示,2026 年 4 月发布的 2026.1.7 版本加入了预编译二进制包、新文档站点、渲染管线选择器、导航工具栏、排序缓冲区修复等内容。(GitHub)

第二,它不是一个简单 demo,而是一个实验平台。NVIDIA 官方技术博客介绍该项目时提到,vk_gaussian_splatting 是 NVIDIA DesignWorks Samples 中的 Vulkan 示例,用于展示实时 Gaussian Splatting,并帮助开发者比较不同渲染方式、性能、质量和实现权衡。(NVIDIA Developer)

第三,它的 Vulkan 技术点比较集中。普通 Vulkan 入门项目可能只讲三角形、纹理、PBR,但这个项目会涉及:

复制代码
Vulkan Pipeline
Mesh Shader
Compute Shader
GPU Sorting
Radix Sort
Ray Tracing Pipeline
Acceleration Structure
Shader Binding
透明度混合
大规模粒子渲染
显存管理

对于想研究现代图形学渲染的人来说,这个项目的价值比普通模型查看器更高。


三、本文目标

本文主要完成以下内容:

复制代码
1. 安装 Vulkan 运行环境
2. 下载并运行官方预编译版本
3. 下载 3DGS 测试模型
4. 从源码编译 vk_gaussian_splatting
5. 使用 PLY 模型进行实时渲染
6. 分析项目目录结构
7. 总结常见报错和解决方法
8. 给出后续源码研究方向

本文使用 Windows 作为主要操作环境,Linux 用户也可以参考官方文档中的依赖说明。


四、项目运行要求

官方文档给出的运行环境要求如下:

复制代码
NVIDIA GPU
64-bit Windows 或 Linux
Vulkan 1.4 SDK

官方 Getting Started 页面明确列出了这些 Runtime Requirements。(NVPro Samples)

如果只是运行预编译版,主要需要:

复制代码
NVIDIA 显卡驱动
Vulkan SDK
一个支持 Vulkan 的 NVIDIA GPU

如果要从源码编译,还需要:

复制代码
Git
CMake 3.22 或更高版本
Visual Studio 2019 / Visual Studio 2022
支持 C++20 基础特性的编译器

官方源码编译要求中写到:需要 CMake 3.22 或更高版本、支持基础 C++20 特性的编译器、Windows 下使用 MSVC 2019,Linux 下使用 GCC 10.5 或 Clang;CUDA 12.6 是可选项,主要用于启用 NVML GPU 监控。(NVPro Samples)


五、环境准备

1. 安装 NVIDIA 显卡驱动

首先确保电脑使用的是 NVIDIA 显卡。推荐 RTX 系列显卡,例如:

复制代码
RTX 2060
RTX 3060
RTX 3070
RTX 4060
RTX 4070
RTX 4080
RTX 4090

安装驱动后,在命令行中输入:

复制代码
nvidia-smi

如果能看到类似下面的信息,说明显卡驱动正常:

复制代码
NVIDIA-SMI 版本信息
GPU Name
Driver Version
CUDA Version
显存占用情况

例如:

复制代码
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.xx                 Driver Version: 560.xx        CUDA Version: 12.x       |
| GPU  Name                        Memory-Usage                                         |
| 0    NVIDIA GeForce RTX 3060     1024MiB / 12288MiB                                  |
+-----------------------------------------------------------------------------------------+

这里不要求一定安装 CUDA。CUDA 对这个项目不是强制要求,官方文档也说明 CUDA 12.6 是可选项,主要用于 NVML GPU 监控。(NVPro Samples)


2. 安装 Vulkan SDK

进入 LunarG Vulkan SDK 官网,下载 Windows 版本 Vulkan SDK。

安装完成后,在命令行中输入:

复制代码
vulkaninfo --summary

如果环境正常,会输出当前 Vulkan 实例、物理设备、驱动、扩展等信息。

你应该重点查看:

复制代码
GPU 是否被识别
Vulkan API Version 是否正常
显卡驱动是否支持 Vulkan

如果系统提示:

复制代码
'vulkaninfo' 不是内部或外部命令

说明 Vulkan SDK 没有安装成功,或者环境变量没有生效。可以重启电脑,或者检查 Vulkan SDK 的 Bin 路径是否加入了系统环境变量。


3. 安装 Visual Studio

如果只运行预编译版本,可以不装 Visual Studio。

如果要源码编译,建议安装:

复制代码
Visual Studio 2022

安装时勾选:

复制代码
使用 C++ 的桌面开发
Windows 10 / Windows 11 SDK
MSVC 编译工具
CMake 工具

安装完成后,可以打开:

复制代码
x64 Native Tools Command Prompt for VS 2022

然后输入:

复制代码
cl

如果出现 Microsoft C/C++ 编译器版本信息,说明 MSVC 环境正常。


4. 安装 Git 和 CMake

检查 Git:

复制代码
git --version

检查 CMake:

复制代码
cmake --version

建议 CMake 版本不低于:

复制代码
3.22

因为官方源码编译要求就是 CMake 3.22 或更高版本。(NVPro Samples)


六、方式一:使用官方预编译版本运行

如果你的目标是先看效果,建议先用预编译版。这样可以快速确认显卡、Vulkan 环境、模型数据是否正常。

官方文档说明,Windows 64-bit 和 Linux 64-bit 的预编译包可以从 GitHub Releases 页面下载。(NVPro Samples)

下载后解压,例如解压到:

复制代码
D:\vk_gaussian_splatting

目录中一般会看到:

复制代码
vk_gaussian_splatting.exe

双击运行即可。

也可以使用命令行运行:

复制代码
cd /d D:\vk_gaussian_splatting
vk_gaussian_splatting.exe

如果要启动时直接加载模型,可以这样:

复制代码
vk_gaussian_splatting.exe D:\3dgs_models\flowers_1.ply

官方运行格式也是:

复制代码
./vk_gaussian_splatting.exe [path_to_ply]

其中 [path_to_ply] 是可选参数。(NVPro Samples)


七、下载测试模型

3DGS 模型一般使用 .ply 格式保存。

这里要注意:普通点云 .ply 和 3DGS .ply 不是一回事。

普通点云 .ply 可能只包含:

复制代码
x
y
z
r
g
b

而 3DGS 的 .ply 通常还包含:

复制代码
position
scale
rotation
opacity
spherical harmonics
covariance-related data

因此,不是所有 .ply 文件都能被 3DGS Viewer 正确加载。

官方 README 推荐先下载一个轻量级的 flowers 模型,并把 flowers_1.ply 拖入窗口中。(GitHub)

官方 Getting Started 页面也说明,应用支持:

复制代码
INRIA 3DGS 格式的 PLY 文件
Niantic SPZ 格式的 SPZ 文件

并且可以通过命令行、File > Open、拖拽到窗口三种方式打开模型。(NVPro Samples)

推荐第一次测试使用:

复制代码
Bouquet of Flowers

这是 NVIDIA 提供的小型测试模型。官方数据集页面也说明,该模型会在 CMake 默认构建时自动下载,也可以手动下载。(NVPro Samples)


八、加载 PLY 模型

启动程序后,有三种加载方式。

方式 1:拖拽加载

直接把:

复制代码
flowers_1.ply

拖入程序窗口。

这是最简单的方式。


方式 2:菜单加载

在软件中选择:

复制代码
File > Open

然后选择你的 .ply 文件。


方式 3:命令行加载

例如模型路径是:

复制代码
D:\3dgs_models\flowers\flowers_1.ply

可以执行:

复制代码
cd /d D:\vk_gaussian_splatting
vk_gaussian_splatting.exe D:\3dgs_models\flowers\flowers_1.ply

如果加载成功,窗口中应该能看到花束的 3DGS 渲染结果。


九、方式二:从源码编译

预编译版适合快速体验,但如果要研究渲染引擎,最终一定要源码编译。

源码编译的价值在于:

复制代码
可以调试 C++ 代码
可以修改 shader
可以研究不同渲染管线
可以分析 GPU buffer 数据结构
可以修改排序算法
可以加入自己的模型加载逻辑
可以写实验报告或博客

1. 克隆项目

建议新建一个源码目录:

复制代码
D:
mkdir D:\Code
cd /d D:\Code

然后克隆项目:

复制代码
git clone --recurse-submodules https://github.com/nvpro-samples/vk_gaussian_splatting
cd vk_gaussian_splatting

这里必须带上:

复制代码
--recurse-submodules

因为项目依赖子模块。如果忘记带这个参数,后面可能会出现第三方库缺失、CMake 找不到文件等问题。

官方源码构建文档给出的命令也是:

复制代码
git clone --recurse-submodules https://github.com/nvpro-samples/vk_gaussian_splatting
cd vk_gaussian_splatting

(NVPro Samples)

如果已经克隆过项目,但没有拉取子模块,可以补执行:

复制代码
git submodule update --init --recursive

2. 配置 CMake

在项目根目录执行:

复制代码
cmake -S . -B build

这个命令的含义是:

复制代码
-S .       表示源码目录是当前目录
-B build   表示构建目录是 build

如果你不想让 CMake 自动下载默认 flowers 场景,可以使用:

复制代码
cmake -S . -B build -DDISABLE_DEFAULT_SCENE=ON

官方文档也给出了这个参数,用于禁用默认 bouquet of flowers 场景的下载和自动加载。(NVPro Samples)


3. 编译 Release 版本

执行:

复制代码
cmake --build build --config Release

第一次编译时间可能会比较长,因为项目会处理依赖、编译 C++ 代码、处理 shader 和相关资源。

编译完成后,官方给出的运行路径是:

复制代码
./_bin/Release/vk_gaussian_splatting.exe [path_to_ply]

(NVPro Samples)

Windows 下可以执行:

复制代码
_bin\Release\vk_gaussian_splatting.exe

或者直接加载模型:

复制代码
_bin\Release\vk_gaussian_splatting.exe D:\3dgs_models\flowers\flowers_1.ply

十、完整 Windows 编译命令汇总

下面是完整流程,可以直接复制执行:

复制代码
D:
mkdir D:\Code
cd /d D:\Code

git clone --recurse-submodules https://github.com/nvpro-samples/vk_gaussian_splatting
cd vk_gaussian_splatting

cmake -S . -B build
cmake --build build --config Release

_bin\Release\vk_gaussian_splatting.exe

如果要禁用默认模型下载:

复制代码
D:
mkdir D:\Code
cd /d D:\Code

git clone --recurse-submodules https://github.com/nvpro-samples/vk_gaussian_splatting
cd vk_gaussian_splatting

cmake -S . -B build -DDISABLE_DEFAULT_SCENE=ON
cmake --build build --config Release

_bin\Release\vk_gaussian_splatting.exe D:\3dgs_models\flowers\flowers_1.ply

十一、Linux 编译补充

Linux 下除了 CMake、Git、编译器、Vulkan SDK 外,还需要安装额外依赖。官方文档给出的 Ubuntu 依赖如下:(NVPro Samples)

复制代码
sudo apt install libx11-dev libxcb1-dev libxcb-keysyms1-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev libtbb-dev

然后执行:

复制代码
git clone --recurse-submodules https://github.com/nvpro-samples/vk_gaussian_splatting
cd vk_gaussian_splatting

cmake -S . -B build
cmake --build build --config Release

./_bin/Release/vk_gaussian_splatting [path_to_ply]

十二、程序运行效果观察

模型加载成功后,可以重点观察几个方面。

1. 渲染帧率

3DGS 模型的性能和高斯数量关系很大。

小模型可能非常流畅,大模型则会明显吃显存和算力。

官方数据集页面中提到,106M Particles City 这个模型在 rasterization 下大约需要 10GB 显存,而 ray tracing / hybrid 模式下大约需要 42GB 显存;15.3M Green House 在 ray tracing / hybrid 下大约需要 8GB 显存。(NVPro Samples)

所以如果你的显卡是 RTX 3060 12GB,建议先测试:

复制代码
flowers
fountain
green house

不要一开始就直接加载 106M 粒子的城市模型。


2. 渲染管线切换

可以在程序菜单中切换不同 renderer pipeline,重点对比:

复制代码
Mesh Shader 3DGS
Vertex Shader 3DGS
Ray Tracing 3DGRT
Unscented Transform 3DGUT
Hybrid Rendering
Stochastic Transparency

不同管线的目标不同:

复制代码
光栅化管线:速度快,适合实时预览
光追管线:更适合研究粒子求交和高级光照
混合管线:在质量和性能之间折中
随机透明度:用于改善排序和透明混合相关问题

3. 透明度和排序

3D Gaussian Splatting 的一个核心问题是透明度混合。

普通三角网格渲染中,如果物体不透明,可以使用深度测试解决遮挡关系。但 3DGS 中每个高斯 splat 通常具有透明度,需要进行 alpha compositing。

NVIDIA 技术博客中提到,由于 Gaussian splats 需要从后到前排序以进行正确的 alpha 混合,因此项目提供了 GPU Radix Sort 和 CPU 异步排序两种方案。(NVIDIA Developer)

这也是这个项目非常值得研究的地方。


十三、项目目录结构分析

克隆项目后,可以重点看下面这些目录和文件:

复制代码
vk_gaussian_splatting
├── 3rdparty
├── cmake
├── docs
├── nvpro_core2
├── shaders
├── src
├── benchmark.py
├── benchmark_3dgrt.cfg
├── benchmark_3dgs.cfg
├── benchmark_3dgut.cfg
├── CMakeLists.txt
├── README.md
└── VERSION

GitHub 仓库页面也能看到项目包含 3rdparty、cmake、docs、nvpro_core2、shaders、benchmark.py、多个 benchmark 配置文件等内容。(GitHub)

下面简单说明几个重点。


1. src 目录

src 是 C++ 源码核心目录。

你后续研究时应该重点关注:

复制代码
应用初始化
Vulkan 设备创建
资源加载
PLY / SPZ 数据解析
Gaussian 数据组织
GPU Buffer 上传
Renderer Pipeline 创建
UI 交互
相机控制
场景管理

如果你想真正理解它的运行流程,建议从程序入口开始看,然后沿着模型加载流程一路追踪到渲染管线创建。


2. shaders 目录

shaders 是最重要的目录之一。

3DGS 的很多核心逻辑都在 shader 里完成,例如:

复制代码
高斯投影
屏幕空间 splat 计算
颜色计算
透明度混合
排序索引使用
ray tracing 求交
hybrid rendering 相关逻辑

README 更新记录中也提到,项目在 2025 年 10 月从 GLSL 迁移到了 SLANG。(GitHub)

因此你研究源码时,不要只看 C++,还要重点看 shader。


3. benchmark.py

这个文件用于性能测试。

NVIDIA 技术博客介绍项目时提到,该 sample 提供了 benchmarking system、profiling feedback、GPU timings 等能力,用于帮助开发者理解性能、质量和实现权衡。(NVIDIA Developer)

如果你想写更深入的博客,可以用 benchmark 对比:

复制代码
不同模型
不同渲染管线
不同排序方式
不同显卡
不同分辨率
不同抗锯齿设置

4. docs 目录

如果网络打不开在线文档,可以直接看本地 docs 目录。

README 中也说明,离线情况下可以浏览仓库中的 docs markdown 页面。(GitHub)

这个目录适合用来理解:

复制代码
Rasterization
Ray Tracing
Unscented Transform
Hybrid Rendering
Stochastic Transparency
Lighting and Shadows

十四、常见问题与解决方法

1. 运行时报 Vulkan 错误

先检查:

复制代码
vulkaninfo --summary

如果命令不存在,说明 Vulkan SDK 没有安装好。

如果命令存在但识别不到显卡,优先更新 NVIDIA 驱动。


2. 找不到 vk_gaussian_splatting.exe

如果你是源码编译,注意它不一定在 build 目录里,而是在:

复制代码
_bin\Release\vk_gaussian_splatting.exe

官方文档给出的运行路径也是:

复制代码
./_bin/Release/vk_gaussian_splatting.exe [path_to_ply]

(NVPro Samples)


3. CMake 报子模块缺失

如果出现第三方库缺失,执行:

复制代码
git submodule update --init --recursive

然后重新配置:

复制代码
rmdir /s /q build
cmake -S . -B build

4. CMake 下载默认模型很慢

可以禁用默认 flowers 场景下载:

复制代码
cmake -S . -B build -DDISABLE_DEFAULT_SCENE=ON

官方文档中也提供了这个选项。(NVPro Samples)


5. 模型打开后效果不对

这可能不是程序错误,而是模型格式或渲染参数不匹配。

官方文档提醒:3D Gaussian 模型最好使用与重建时一致的渲染算法和设置;由于目前没有包含完整元数据的通用格式,用户往往需要手动调整渲染参数。(NVPro Samples)

例如:

复制代码
Postshot 生成的模型
INRIA 原始 3DGS 模型
3DGRT 模型
3DGUT 模型
SPZ 模型

它们适合的渲染管线可能不同。


6. input.ply 打不开

如果你下载的是 INRIA 原始数据集,要注意不要打开 input.ply。

官方数据集页面说明,应该打开 point_cloud 子目录中的 PLY 文件,例如 7000 或 30000 iterations 对应的结果;input.ply 是 SfM 生成的原始点云,不是 3DGS 模型,不能作为 3DGS 文件加载。(NVPro Samples)


十五、源码研究路线

部署成功后,不建议马上乱改代码。可以按下面顺序研究。


第一阶段:理解 3DGS 数据结构

重点看:

复制代码
PLY 文件如何读取
每个 Gaussian 包含哪些属性
属性如何上传到 GPU Buffer
数据是否压缩
颜色和 spherical harmonics 如何存储

可以重点关注:

复制代码
position
scale
rotation
opacity
features_dc
features_rest

这些字段决定了高斯的位置、形状、透明度和视角相关颜色。


第二阶段:理解 Rasterization 管线

光栅化管线是最适合入门的部分。

可以重点研究:

复制代码
每个 Gaussian 如何投影到屏幕
如何计算屏幕空间椭圆
如何进行 tile culling
如何排序
如何 alpha blending
Mesh Shader 和 Vertex Shader 的区别

NVIDIA 技术博客提到,该项目的初始实现基于 rasterization,并展示了两种 splat 渲染方式:一种使用 mesh shader,另一种使用 vertex shader。(NVIDIA Developer)


第三阶段:研究排序算法

3DGS 中排序非常关键。

可以重点研究:

复制代码
GPU Radix Sort
CPU Async Sort
Back-to-front Sorting
Frustum Culling
Screen Size Culling
排序开销和渲染开销的关系

在透明渲染中,如果排序不准确,可能出现:

复制代码
闪烁
半透明层次错误
局部混合异常
视角切换时画面跳动

NVIDIA 技术博客也明确说明,该项目提供 GPU Radix Sort 和 CPU 异步排序两种方案,用于处理 Gaussian splats 的后向前排序问题。(NVIDIA Developer)


第四阶段:研究 Ray Tracing / Hybrid 管线

当你理解光栅化管线后,可以继续研究:

复制代码
3DGRT
3DGUT
Hybrid Rendering
Acceleration Structure
TLAS / BLAS
Ray Generation Shader
Closest Hit Shader
Miss Shader

项目 README 的 Deep Dives 中包含:

复制代码
VK3DGRT --- Ray Tracing
VK3DGUT --- Unscented Transform
VK3DGHR --- Hybrid Rendering

这些章节正是后续深入研究的重点。(GitHub)


十六、实验建议

部署完成后,可以设计几个实验。

实验 1:不同模型渲染性能对比

记录:

复制代码
模型名称
Gaussian 数量
显存占用
平均 FPS
GPU frame time
渲染管线
分辨率

可以做成表格:

模型 管线 显存占用 FPS 备注
Flowers Rasterization 较低 高 入门测试
Fountain Rasterization 中等 高 场景更复杂
Green House Rasterization 较高 中高 适合 RTX 3060 以上
City 106M Rasterization 很高 视显卡而定 官方建议约 10GB 显存
City 106M Ray Tracing / Hybrid 极高 不建议普通显卡 官方说明约 42GB 显存

其中 City 和 Green House 的显存需求可以参考官方数据集说明。(NVPro Samples)


实验 2:不同渲染管线画质对比

可以截图比较:

复制代码
Rasterization
Ray Tracing
Hybrid Rendering
Stochastic Transparency

观察:

复制代码
边缘质量
透明度层次
闪烁情况
阴影效果
细节保留
运动时稳定性

实验 3:排序方式性能对比

对比:

复制代码
GPU Radix Sort
CPU Async Sort

记录:

复制代码
排序耗时
总帧耗时
FPS
显存占用
画面正确性

这个实验很适合写成深入博客,因为排序是 3DGS 实时渲染中的核心问题。


十七、适合插入的博客图片

图片 1:3DGS 与传统三角网格渲染对比图

建议放在"前言"后面。

图片内容:

复制代码
左侧:传统三角网格模型,由大量三角形组成
右侧:3D Gaussian Splatting,由大量半透明椭球/高斯点组成
中间用箭头标注:Mesh Rendering vs Gaussian Splatting

图片 2:本地部署流程图

建议放在"环境准备"部分。

图片内容:

复制代码
安装 NVIDIA 驱动
        ↓
安装 Vulkan SDK
        ↓
下载预编译包 / 克隆源码
        ↓
下载 PLY 模型
        ↓
运行 vk_gaussian_splatting
        ↓
加载 flowers_1.ply
        ↓
实时渲染

图片 3:程序成功运行截图

建议放在"加载 PLY 模型"之后。

图片内容:

复制代码
软件窗口中显示 flowers_1.ply 渲染结果
右侧或上方显示渲染参数面板
底部显示 FPS / GPU timing / profiler

图片 4:源码编译命令截图

建议放在"从源码编译"部分。

图片内容:

复制代码
命令行显示:
cmake -S . -B build
cmake --build build --config Release
编译成功后出现 vk_gaussian_splatting.exe

图片 5:不同渲染管线对比图

建议放在"实验建议"部分。

图片内容:

复制代码
同一个 3DGS 模型
分别使用 Rasterization / Ray Tracing / Hybrid Rendering 渲染
每张图下面标注 FPS 和显存占用

十八、总结

本文完成了 NVIDIA vk_gaussian_splatting 项目的本地部署、模型加载和源码编译。

整个流程可以总结为:

复制代码
安装 NVIDIA 驱动
安装 Vulkan SDK
下载预编译版本快速测试
下载 flowers_1.ply 模型
运行 vk_gaussian_splatting
从源码 clone 项目
使用 CMake 配置和编译
运行 _bin\Release\vk_gaussian_splatting.exe
加载 PLY 模型进行实时渲染

这个项目的价值不只是"能打开一个 3DGS 模型",更重要的是它提供了一个现代 Vulkan 渲染实验平台。它把 3D Gaussian Splatting、Mesh Shader、GPU Sorting、Ray Tracing、Hybrid Rendering、透明度混合、benchmark 和 profiling 结合在了一起。

如果只是看效果,下载预编译版本就够了。

如果想真正研究图形学渲染,就应该从源码入手,重点分析:

复制代码
PLY / SPZ 模型加载
Gaussian 数据结构
GPU Buffer 上传
光栅化渲染管线
GPU Radix Sort
透明度混合
Mesh Shader
Ray Tracing Pipeline
Hybrid Rendering
Benchmark 系统

后续可以继续深入写几篇文章:

复制代码
《Vulkan 3D Gaussian Splatting 源码分析:PLY 模型如何变成 GPU Buffer》
《3DGS 实时渲染中的透明度排序:GPU Radix Sort 与 CPU Async Sort 对比》
《从 Rasterization 到 Ray Tracing:vk_gaussian_splatting 渲染管线分析》
《Mesh Shader 在 3D Gaussian Splatting 中的应用》
《基于 Vulkan 的 3DGS 大模型渲染性能测试》

对于想研究现代图形学渲染的人来说,vk_gaussian_splatting 是一个非常值得复现和深入阅读的项目。

相关推荐
Martina_03211 小时前
AI生成的海岸城市一移动镜头,水面反射就跳?用6步统一反射探针、SSR与平面反射
图像处理·人工智能·平面·3d·ai·自然语言处理·游戏策划
Alphapeople1 小时前
2D转3D方案
3d
风花一世月2 小时前
[特殊字符] 我把一套分布式消防方案做成了能跑的 3D 沙盘(三架无人机共用一根水带,在线直接玩)
分布式·3d·ai·无人机
大雷神3 小时前
用鸿蒙开发助手推进《3D种植》鸿蒙版与 Flame 库适配
3d·华为·harmonyos
尘中远6 小时前
QWT 3D 模块重构记:旧渲染管线改进介绍及实时瀑布图示例
3d·重构
Jmyd012317 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化
Zldaisy3d19 小时前
北京理工大学 l 金属激光增材制造在线监测技术研究进展
数码相机·3d·制造
大圣编蚕19 小时前
OpenGL ES 教程:从零开始掌握 3D 渲染
大数据·elasticsearch·3d
足球中国1 天前
3D STEP文件编程
3d
时空节拍AI数字人1 天前
数字文旅补贴来了,景区申报要注意什么?
大数据·人工智能·百度·3d·ai·架构·aigc