新闻详情

新闻详情

首页 / 资讯中心 / 详情

球谐函数(SH)在Spirula Studio中的作用与旋转对齐原理

发布时间:2026/11/13 14:26:36来源:尧图网络
球谐函数(SH)在Spirula Studio中的作用与旋转对齐原理
球谐函数(SH)在Spirula Studio中的作用与旋转对齐原理【免费下载链接】spirula-studioCross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA.项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio球谐函数Spherical Harmonics简称 SH是 Spirula Studio 这类跨厂商 3D Gaussian Splatting3D 高斯泼溅训练器中的核心色彩技术。Spirula Studio 是一款从视频到 Splat 再到 Mesh的开源重建工具基于 Vulkan/CUDA 后端、无需 Python 环境即可运行。本文将用大白话讲清楚两件事SH 在 3DGS 训练中到底负责什么以及当你旋转一个训练好的模型时SH 系数为什么要跟着一起转——这正是 Spirula Studio 中 ShRotation 模块要解决的漂亮问题。球谐函数在 3D Gaussian Splatting 中扮演什么角色先建立一个直觉3D Gaussian Splatting 中的每个高斯小贴片splat不只是一个固定的颜色——它的颜色会随观察方向变化金属反光、塑料柔光、织物漫反射都是典型例子。SH 就是描述颜色随视角变化的数学工具。具体拆解一个 splat 的颜色可以分成两部分组成部分SH 阶数系数数量每通道作用基础色DC 项0 阶l01不随视角变化的恒定颜色视角相关色彩1~4 阶3 / 5 / 7 / 9描述高光、反射等随视角变化的部分0 阶DC 项一个常数即底色旋转模型时它完全不动1~4 阶view-dependent bands每一阶 l 有 2l1 个基函数负责更细腻的光照变化Spirula Studio 支持最多 4 阶渲染时按--sh-degree截断阶数越高细节越强但参数越多。评估逻辑位于渲染着色器 shaders/harmonics.slang核心函数sh_coeffs_to_color训练时 GPU 会在每个像素上根据相机到高斯的单位方向实时算出最终颜色。这也是为什么 Spirula Studio 能在 8 GB 显存里量化训练 1000 万个 SH3 高斯——SH 系数支持 q8/q16 量化存储布局细节见 docs/notes/sh-quant-layout.md。旋转对齐原理为什么转模型时 SH 必须跟着转这是本文的重点也是新手最容易踩坑的地方。问题高光会留在原地假设你把一个训练好的模型整体旋转 90°。如果只旋转几何位置mean、姿态quat和尺度scale而不动 SH 系数会发生什么高光、反光会顽固地留在旧方向上——物体转过去了亮斑却还挂在原来的空中。视角相关的颜色游动了画面立刻穿帮。根本原因SH 颜色是在相机 → 高斯的方向 d 上求值的。模型被旋转矩阵 R 转走后旧方向 d 对应的新方向是 R·d所以系数必须变换以满足colour(R·d) colour(d) 对任意方向 d 都成立解法按波段乘以旋转矩阵关键数学事实是旋转不会混阶。每一阶 l 内部基函数之间用一个正交矩阵 M_l(R)大小 (2l1)×(2l1)描述关系Y_l(R·d) M_l(R) · Y_l(d)代入上面的要求就能推导出唯一解——系数也要左乘同一个矩阵c_l M_l(R) · c_l也就是说旋转模型 每一阶 SH 系数各自乘一个专属旋转矩阵。好在 0 阶是常数不动平移和均匀缩放不改变方向所以整个变换里唯一需要做的 SH 工作就是对 R 求 M_l。闭式解Ivanic-Ruedenberg 递推M_l 怎么求两种思路采样法在球面上采大量方向最小二乘解矩阵。简单但每次旋转都要解方程精度受采样限制递推法本项目的做法利用 Ivanic-Ruedenberg 递推公式J. Phys. Chem. 100:6342, 1996从 M_1 和 M_(l-1) 直接递推出 M_2…M_4几百次乘法就得到全部矩阵。Spirula Studio 在 core/ShRotation.cpp 中实现了递推法一次摆放只构建矩阵一次之后每个高斯只需做矩阵-向量乘法4 阶时共 3×(9254981) 次乘法快得几乎可以忽略。最容易错的细节符号约定递推公式是针对不带 Condon-Shortley 相位的实基函数写的1 阶基为 (y, z, x)而harmonics.slang用的基带相位1 阶基为 (−y, z, −x)。两者相差一个对角符号矩阵 S_l正确的引擎矩阵是M_l(engine) S_l · M_l(plain) · S_l跳过这个共轭变换是最经典的错误而且极其隐蔽1 阶和 3 阶系数只会差个符号肉眼看渲染几乎发现不了。开发团队在写任何 C 之前就用原型对比采样拟合抓出了这个问题——未共轭版本误差达 1 阶共轭后吻合到 1e-15。完整推导见设计笔记 docs/notes/sh-rotation.md。如何验证正确性双重测试闭环Spirula Studio 对这个模块用了单元测试 渲染级集成测试双保险纯数学测试core/tests/sh_rotation_test.cpp逐字转录 25 个基函数在随机旋转加各轴 90°/180° 旋转下验证——波段矩阵与采样最小二乘拟合一致实测 2.8e-15、矩阵正交、群性质 M(R1R2) M(R1)M(R2)、以及旋转系数后的颜色在 R·d 处等于原颜色在 d 处渲染闭环测试backend/tests/engine/splat_transform_render.cpp渲染一个强视角相关的随机场景 → 用相似变换烤进 splats → 相机反向移动同样变换 → 再渲染两帧必须一致实测平均差 3e-7覆盖 3dgs/mip/3dgut、针孔/鱼眼、SH 3 阶和 4 阶。同时设了一个只转几何不转 SH的对照组它必须明显不同差 0.07~0.13证明测试真的测到了该测的东西。在哪里用到从模型摆放到编辑工具这个机制的直接受益者是 SplatTransform——整个模型的位置摆放placement与编辑功能mean - s·R·mean t quat - q_R * quat scale - scale ln s SH - 逐波段旋转透明度与 DC 色保持不变只有视角相关波段跟着转。正如编辑功能规划文档 docs/notes/gui-editing-plan.md 中所说旋转 splat 几何只是三行代码而球谐函数必须逐波段与模型一起旋转才是其中唯一需要真功夫的部分。核心文件速查内容路径SH 旋转矩阵Ivanic-Ruedenberg 递推src/core/ShRotation.h / src/core/ShRotation.cpp模型整体变换几何 SHsrc/checkpoint/SplatTransform.hSH 求值着色器src/shaders/harmonics.slang原理推导与设计笔记docs/notes/sh-rotation.mdSH 量化存储布局docs/notes/sh-quant-layout.md数学单元测试src/core/tests/sh_rotation_test.cpp架构总览docs/architecture.md小结SH 的作用让每个高斯 splat 拥有随视角变化的颜色0 阶是恒定底色1~4 阶描述高光与反射旋转对齐转模型时每阶 SH 系数左乘该阶专属正交矩阵 M_l(R)保证高光跟随物体工程亮点用 Ivanic-Ruedenberg 闭式递推代替采样拟合一次建矩阵、全程只做矩阵-向量乘法并特别注意 Condon-Shortley 相位的符号共轭质量保障数学单测 端到端渲染闭环测试双重验证误差控制在 1e-15 / 3e-7 量级。理解了这个机制你就能明白 Spirula Studio 为什么敢把摆放/旋转训练好的 3DGS 模型做成日常编辑功能——因为球谐函数的旋转对齐从数学上已经被严格保证了。【免费下载链接】spirula-studioCross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA.项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉