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 仓库页面也能看到项目包含 3rdpartycmakedocsnvpro_core2shadersbenchmark.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 是一个非常值得复现和深入阅读的项目。

相关推荐
kobesdu9 小时前
当算法跑不通时:3D激光SLAM工程实践中的隐藏陷阱与全链路排查
算法·3d
AI视觉网奇9 小时前
b3dkit 生成连接器
3d
吃好睡好便好10 小时前
在Matlab中绘制饼状图
开发语言·学习·matlab·3d·信息可视化
koharu12311 小时前
PointRCNN 精解:从原始点云到三维框的两阶段检测
人工智能·深度学习·目标检测·3d·三维点云
似水流年wxk11 小时前
cocos3D物体线性溶解消失效果
3d
2401_863801461 天前
OBJ、FBX 与 GLTF 选择用于设计导入的最佳 3D 模型格式:实用的比较可帮助设计人员选择正确的 3D 格式,同时保持几何形状、纹理和性能不变。
3d
IT观测1 天前
从设备到课堂:3D打印教育迈入新阶段
3d
threelab1 天前
Three.js 3D 热力图效果 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
yeflx1 天前
Colmap增加轨迹过滤等参数
3d