宇宙学研究新突破:用 Blender 几何节点处理 CMB 数据,实现多项实用功能!
宇宙学与几何节点2026 年 2 月 17 日作者 MohammadHossein Jamshidi伊朗沙希德·贝赫什蒂大学物理学/宇宙学博士生自 2012 年起也是游戏行业的动画工程师分享在宇宙学研究中使用 Blender 的想法和技术。其作品可在[我的 GitHub](https://jamshidi3d.github.io/portfolio/) 找到展示的所有文件能在 [GitHub 仓库](https://github.com/jamshidi3d/CosmicBlenderNodes) 免费获取。什么是宇宙学我在做什么宇宙学研究巨大尺度空间和时间的物理世界大到可将星系视为点时间长到一千年只是一个时间帧。作者对宇宙微波背景CMB辐射感兴趣其温度约 2.7 开尔文约 -270 摄氏度在天空几乎均匀但存在微小波动10⁻⁶ 到 10⁻⁴ 开尔文之间包含早期宇宙和宇宙历史信息是能观测到的最远光线。宇宙微波背景温度图来源欧洲航天局和普朗克合作组织使用几何节点进行宇宙学研究的灵感最初作者受 [Seanterelle](https://www.youtube.com/seanterelle) 在 YouTube 上用几何节点进行精彩模拟的启发尝试将几何节点用于宇宙学计算。2024 年在关于 CMB 的项目中用几何节点作计算、可视化和算法调试工具制作出可视化 CMB 天空中不同大小帽状和条状区域与银河掩模重叠面积的工具。该项目结果可在 [这篇论文](https://iopscience.iop.org/article/10.3847/1538-4357/ad68ff) 查看这次可视化成为将几何节点应用于更广泛领域和更多用例的起点。用于计算的几何节点几何节点可并行计算网格元素将网格元素视为“数据存储槽”和“处理线程”能进行“单指令多数据”SIMD计算。虽其他工具如 CUDA 或计算着色器可能更快但几何节点有免费调试器和可视化工具适合小规模项目可即时计算和可视化多数情况能实时得到最终数值结果。网格元素可视为存储和线程有时测试计算过程时需要快速可靠工具检查结果是否符合物理规律几何节点可在小规模上测试过程/算法的正确性。接下来将看一些在实际宇宙学中利用几何节点进行可视化、调试和计算的例子。宇宙学与几何节点使用几何节点处理数据需一个 3D 网格存储和处理数据创建合适网格是利用几何节点的第一步。天空图是如何存储的从计算角度合适的数据存储方式很重要可减少计算量。宇宙学家和地质学家处理球形地图/数据采用 [HEALPix](https://healpix.sourceforge.io/)分层等面积等纬度像素化球体像素化方法。一个 HEALPix 球体这种像素化的像素面积相同球体可划分为与赤道平行的像素环像素中心不在极点适合存储数据球形数学计算高效。要制作不同分辨率的 HEALPix 球体可在 [这里](https://jamshidi3d.github.io/posts/cmb_in_geometry_nodes/) 找到分步教程。HEALPix 中的等纬度环虽 HEALPix 像素化有优点但处理像素定位和排序编号/索引有时复杂接下来看几何节点如何帮助避免地图分析中的繁琐工作。使用几何节点可视化 CMB 天空创建具有正确像素排序的 HEALPix 球体后可用 HEALPix 网格的面属性存储 CMB 数据用几何节点可视化。可视化 CMB 地图的详细教程可在 [这里](https://jamshidi3d.github.io/posts/cmb_in_geometry_nodes/) 找到步骤是先将地图数据如 CMB 温度注入网格存储在 HEALPix 球体每个面上再获取最小和最大温度作为颜色范围。使用几何节点在 HEALPix 球体上可视化 CMB 地图投影让生活更轻松几何节点的数据属性投影是强大工具有很多实际应用下面举几个例子。保留像素的地图旋转处理宇宙学球形数据时需进行地图变换保留 HEALPix 像素化有价值。用几何节点中的属性投影工具旋转包含地图的 HEALPix 网格将其数据投影到未旋转的 HEALPix 球体上可实现旋转地图并保留像素化。在几何节点中实现步骤为创建原始球体的虚拟副本旋转它从球体内向每个像素发射光线查看光线与哪个像素碰撞将光线投射的属性投影到原始网格上。按步骤操作可得到旋转后的地图且像素化不变地图旋转的实现保留像素化的地图旋转多普勒增强的添加/去除属性投影还可在保留像素化的同时扭曲地图。不同物理过程会导致地图扭曲如多普勒效应会改变 CMB 地图产生像差。知道运动速度和方向可计算传入光线的像差方向扭曲像素边界HEALPix 球体的顶点将扭曲的球体投影到正常的 HEALPix 球体上得到 CMB 像差地图。当在天空中移动时还有多普勒增强效应会使传入光线波长变化测量的温度也不同。结合像差和多普勒增强效应可用几何节点模拟在天空中的运动。多普勒像差的演示像差的模拟完整多普勒效应像差和频率变化的模拟从天空图中捕获图像在宇宙学项目中用机器学习研究 CMB 天空图异常点需天空不同区域的方形图像。用几何节点的属性投影可轻松准备所需图像无需过多考虑 HEALPix 混乱的索引。思路是将方形平面放在想要捕获图像的位置应用投影得到 CMB 地图的方形图像。从天空图中捕获图像的视频可直接存储索引或温度作者更喜欢像素索引将平面放在每个区域上存储下方像素索引覆盖整个天空为机器学习程序准备合适数据集。实时引力透镜天空中大质量物体会使光线弯曲观测星系时若有大质量物体在视线中会看到变形图像光源偏移。若弯曲物体质量不大是弱透镜效应在 CMB 中常见。弱透镜效应的解释。Prat, J., Bacon, D. Weak Gravitational Lensing. arXiv 预印本 arXiv:2501.07938 (2025).模拟弱透镜效应需找到透镜作用后光源的偏移位置。在 Blender 中将网格每个顶点视为点光源通过偏转角改变其位置δθ 4GM / bc²M 是大质量物体的质量b 是与大质量物体的垂直距离。下面视频可看到 Suzanne 模型的透镜图像假设它是受大质量物体影响的光源。Suzanne 网格上的弱引力透镜效应实际应用中将星系图像放在平面上有足够顶点数对顶点进行相同操作可模拟星系图像上的透镜效应有助于训练机器识别透镜源或对图像进行去透镜处理。应用于真实星系图像的弱透镜效应图片来源欧洲航天局/哈勃和美国国家航空航天局展开天空球体莫尔韦德投影视图为在二维平面可视化球形地图常将天空展平成二维图像宇宙学家常用莫尔韦德投影。球体在平面上的莫尔韦德投影一些软件包可绘制莫尔韦德投影视图但有局限性。几何节点能实现三维到二维映射可对绘图进行操作如实时可视化地图变化或绘制自定义轮廓。绘制莫尔韦德投影先切割球体在一条子午线上切割使用有特殊拓扑结构的 HEALPix 球体添加边完成想要切割的子午线上的边环然后分割球体可展开。然后用莫尔韦德方法投影点需在几何节点中用 for 循环迭代一个坐标。迭代的实现分割网格并找到投影位置后球体就会被映射到莫尔韦德投影上。在 Blender 中将莫尔韦德投影与其他部分的像素化保留技术结合可提供实时的莫尔韦德可视化工具如下面视频可看到地图旋转与莫尔韦德投影的结合。莫尔韦德视图中的地图旋转并行计算像素可利用几何节点进行并行计算在球形地图每个像素上计算是重要用例。宇宙学中常用球谐函数描述球形地图/图像类似于傅里叶级数存在于球体表面可分离球形地图大小特征研究物理起源。球谐函数用 Yₗₘ(θ,ϕ) 表示是方向 (θ,ϕ) 的函数有两个索引 ℓ 和 m。一个方向由 HEALPix 球体上的一个像素或其网格的一个面表示。计算球谐函数较棘手需用递归数学关系多数方法数值不稳定下面图像展示了稳定计算球谐函数的递归关系路径。计算球谐函数的递归关系的稳定路径有稳定递归关系后需用节点实现公式。在几何节点中编写长数学公式繁琐作者认为需脚本节点处理最终结果快速方便。几何节点 - 递归关系公式实现的一部分正确实现公式后可像地图一样将其显示在球体表面。球谐函数的实时可视化Float32高精度宇宙学没问题几何节点使用 float32 数字分析高分辨率地图或天空分区精度不够需 float64 数字。但可用两个 float32 数字模拟 float64 数字及其运算有很多算法可实现。在几何节点处理中将 64 位数字存储在两个 float 通道中可使用两个单独通道或一个向量通道保存实际数字两部分创建自定义函数模拟分离数字的运算符。可视化时将数字转换回 float32 并可视化即可。物理学的其他领域从看到 [Seanterelle](https://www.youtube.com/seanterelle) 的作品到开发上述技术作者思考“物理学的其他领域如何利用几何节点”相信其他领域物理学家也可在其领域使用几何节点如模拟晶体、自旋系统、天体物理系统、液体、蛋白质折叠、广义相对论计算/可视化和多体系统等。大家也可思考其用例在自己领域开发模拟。致谢作者衷心感谢 Nima Khosravi 教授在工作科学方面的宝贵指导特别感谢 Abdolali Banihshemi 博士在项目和撰写本文过程中的合作还感谢 Francesco Siddi、Fiona Cohen 和 Sybren Stuvel 博士对发布这个用户故事的支持。[__ 创建 “Il Baracchino”意大利第一部使用 Blender 制作的成人动画系列](https://www.blender.org/user-stories/creating-il-baracchino-italys-first-adult-animated-series-made-with-bl)