一、两个世界的同一种崩溃一段着色器代码中cell.xy的缩放因子从 9 被修改为 99。着色器随即呈现完全黑屏——既无报错信息也无渲染异常只有纯粹、彻底、连噪点都不存在的黑色。在屏幕的某个抽象维度上发生了一件与理论物理学家在黑板上推演过无数次的事件在数学意义上完全等价的事情一个“宇宙常数”被改变导致一整个微型宇宙的结构瞬间崩塌。程序员面对的是失去所有视觉结构的分形物理学家想象的是失去所有原子的虚空。这两个场景发生在完全不同的介质中——一个在 GPU 的寄存器中一个在时空的度规上——但它们共享着同一个底层逻辑系统对参数的敏感依赖性是一种跨越所有复杂系统的数学必然性不因基底的不同而有任何区别。要理解这个类比需要先剥开两个领域的外壳直视它们共享的那具骨架。二、迭代、算子与收敛域着色器里的宇宙现代图形学中的分形着色器本质上是一个迭代函数系统Iterated Function System, IFS在屏幕空间上的可视化。以最经典的曼德博集合或分形十字结构为例着色器对屏幕上的每一个像素执行如下操作将像素的屏幕坐标(u,v)∈[0,W]×[0,H](u,v)\in[0,W]\times[0,H](u,v)∈[0,W]×[0,H]映射到复平面或二维实数空间(x,y)∈[a,b]×[c,d](x,y)\in[a,b]\times[c,d](x,y)∈[a,b]×[c,d]将该坐标送入一个迭代公式反复套用NNN次判断迭代结果是否收敛根据收敛速度或发散阈值赋予颜色。这个过程的数学核心可以用一个简单的不动点迭代来描述zn1f(zn;λ) z_{n1} f(z_n; \lambda)zn1​f(zn​;λ)其中zn(xn,yn)∈R2z_n(x_n,y_n)\in\mathbb{R}^2zn​(xn​,yn​)∈R2是第nnn次迭代后的坐标向量λ∈Rk\lambda\in\mathbb{R}^kλ∈Rk是控制变换强度和形式的kkk维参数向量——在上述故事中这就是那个被修改的缩放倍数f:R2×Rk→R2f:\mathbb{R}^2\times\mathbb{R}^k\rightarrow\mathbb{R}^2f:R2×Rk→R2是迭代函数通常由平移、旋转、缩放等仿射变换组合而成。每次迭代中坐标被平移、旋转、缩放然后进入下一轮。经过数十次甚至上百次迭代后像素的颜色值逐渐收敛到一个稳定的吸引子或者发散到无穷。这个吸引子就是屏幕上呈现的分形图案。物理学的方程现在来看理论物理。以最基本的问题——氢原子为什么能稳定存在——为例。氢原子的行为由定态薛定谔方程描述H^ψEψ \hat{H}\psi E\psiH^ψEψ其中哈密顿算符H^\hat{H}H^包含动能项和库仑势能项H^−ℏ22me∇2V(r) \hat{H} -\frac{\hbar^2}{2m_e}\nabla^2 V(r)H^−2me​ℏ2​∇2V(r)库仑势的形式是V(r)−e24πϵ0⋅1r−αℏcr V(r) -\frac{e^2}{4\pi\epsilon_0} \cdot \frac{1}{r} -\frac{\alpha \hbar c}{r}V(r)−4πϵ0​e2​⋅r1​−rαℏc​这里引入了一个关键数字α\alphaα精细结构常数。它的值约等于1/137.035999074(44)1/137.035999074(44)1/137.035999074(44)。这个无量纲常数决定了电磁相互作用的强度——电子被原子核束缚的力度、化学键的能量、光与物质耦合的强度全部由它决定。求解薛定谔方程的过程在数学上是什么是反复将哈密顿算符作用于试探波函数寻找满足边界条件的本征函数和本征值。这个迭代求解过程——无论是解析的级数展开还是数值的变分法——在结构上与着色器里那个不动点迭代看上去同构将同一个算子反复作用于一个对象直到它收敛到一个稳定的吸引子——在物理里叫本征态在图形学里叫分形图案。同构的形式当剥掉具体的物理或图形学语境两个系统的数学骨架裸露出来图形学着色器理论物理屏幕坐标(x,y)(x,y)(x,y)系统状态ψ\psiψ迭代函数f(z;λ)f(z;\lambda)f(z;λ)哈密顿算符H^(α)\hat{H}(\alpha)H^(α)参数λ\lambdaλ缩放倍数参数α\alphaα精细结构常数迭代过程zn1f(zn)z_{n1}f(z_n)zn1​f(zn​)算子作用H^ψn\hat{H}\psi_nH^ψn​收敛吸引子本征态分形图案原子结构两组系统都可以抽象为参数化算子在一个度量空间上的迭代作用系统的稳定结构分形/原子对应于该算子的吸引子而参数缩放因子/耦合常数决定了吸引子的存在性、位置和稳定性。三、为什么一改就崩: 空间中的狭窄走廊在上述抽象框架下一个系统的所有可能行为可以看作它的参数空间到结构空间的一个映射。参数空间中的每一个点对应着系统的一种可能状态——可能是绚丽的分形可能是稳定的原子也可能是混沌的噪声或离散的等离子体。关键的事实是在绝大多数复杂系统中能产生稳定、有序、有结构输出的参数区域只占整个参数空间的极小比例。其余的区域要么是无结构的噪声要么是彻底的崩溃。这是一个被非线性动力学反复验证的普遍规律。在逻辑斯蒂映射xn1rxn(1−xn)x_{n1}r x_n(1-x_n)xn1​rxn​(1−xn​)中能产生稳定周期轨道的rrr值只占据特定的狭窄窗口大部分rrr值导向混沌。在洛伦兹系统中能产生那个著名蝴蝶吸引子的参数区域同样狭窄。在人工神经网络中能让梯度稳定传播的初始化范围只占据参数空间的一个薄层。分形着色器宇宙和现实物理宇宙不过是这个普遍规律的两种壮观显现。着色器中的崩塌99 倍发生了什么当缩放因子从 9 改为 99在数学上发生了什么原始的着色器在 9 倍缩放时像素坐标在迭代过程中被适度的变换拉伸整个吸引子结构——那些十字形分形——稳稳地坐在收敛域里。每个像素经过几十次迭代后都能落到一个确定的吸引盆中被赋予一个确定的颜色。整个屏幕呈现为连续的、有序的分形图案。99 倍意味着什么坐标空间被极端拉伸。原本在一个单位长度内采样的所有点现在被拉伸到了 99 倍的范围。这意味着迭代算子的雅可比矩阵特征值发生了剧烈变化。对于仿射变换f(z)λRztf(z)\lambda R z tf(z)λRzt其中RRR是旋转矩阵ttt是平移向量其雅可比矩阵为JfλR J_f \lambda RJf​λR其特征值为λe±iθ\lambda e^{\pm i\theta}λe±iθ模长均为λ\lambdaλ。当λ1\lambda1λ1时变换是扩张性的当λ1\lambda1λ1时变换是收缩性的。当λ\lambdaλ从 9 增加到 99 时变换的扩张性急剧增强。原来稳定的吸引子可能不再稳定或者更致命的是——吸引子的吸引盆被拉伸成了比像素尺寸更薄的丝状结构。用通俗的话说分形还在那里但它变得无限薄、无限稀疏像素点落到屏幕上的时候根本“撞”不到任何结构。所有的迭代路径都发散到了无穷或者落入了无定义的区域。着色器返回黑色。不是报错的品红色不是除零的白色是纯粹的、语义正确的黑色——因为所有像素的迭代结果都是“无结构”渲染器忠实地把这个结果呈现了出来。宇宙中的崩塌1/1371/1371/137改成1/1361/1361/136会发生什么精细结构常数α\alphaα出现在所有涉及电磁相互作用的物理过程中。改变它等于改变电磁力的强度。如果α\alphaα稍微变大一点比如从1/1371/1371/137变成1/1361/1361/136电磁力会变强。电子会被更紧地束缚在原子核周围。乍看之下似乎问题不大——束缚更紧原子更稳定但物理是联动的。更强的电磁耦合意味着原子核内的质子之间的库仑排斥力也变大了。更致命的是它会改变恒星内部的核聚变速率。如果α\alphaα变大到一定程度恒星会在极短时间内烧完燃料并坍缩根本来不及形成行星更不用说生命。如果α\alphaα变小电磁力变弱。电子再也无法被原子核束缚——它们会挣脱出去物质将由离散的离子和自由电子组成无法形成分子无法产生化学键整个宇宙是等离子态的热汤。无论是哪种偏移结果都是同一个没有原子。没有分子。没有化学。没有生命。没有意识。宇宙的“着色器”不会报错——物理定律照常运行能量守恒动量守恒所有方程都成立——但输出结果是一片虚无。这与着色器黑屏在数学上看上去等价系统算子改变了吸引子结构崩溃了所有初始条件都导向无结构的输出。四、精细调节从数学必然到存在之问什么是精细调节问题物理学中的精细调节问题指的是这样一个观察我们宇宙中那些让生命得以存在的基本常数似乎恰好落在了极其狭窄的容许区间内。偏一点一切都不复存在。精细结构常数α≈1/137\alpha\approx 1/137α≈1/137就是最常被引用的例子。如果α\alphaα偏离当前值超过 4%碳-12 原子核的共振能级就会消失恒星内部将无法合成碳元素而碳是所有已知生命的基础。此外还有强核力的耦合常数稍弱 1% 则氘核无法稳定存在稍强 2% 则所有氢在宇宙早期就会被烧成重元素宇宙学常数如果比当前值大1012010^{120}10120分之一宇宙会在恒星形成前就被暗能量撕裂小一点点宇宙会在大爆炸后瞬间重新坍缩中子和质子的质量差如果差 0.1%就不会有稳定的原子核。这些常数的“恰好”困扰了物理学家几十年。它看上去太像某个存在“调好了”参数或者存在本身就是一种幸存者偏差——这就是人择原理的核心。图形学中的精细调节一个可以亲手验证的版本任何长期写着色器或调过复杂系统参数的人都会对精细调节有一种近乎本能的熟悉感。它不是书本上读来的概念而是经验。在参数空间里试探, 调整分形的迭代次数、坐标缩放倍数、色彩映射曲线的斜率、噪声函数的频率。大部分参数组合给出的结果是丑陋的要么是灰蒙蒙的噪声要么是刺眼的过饱和要么是僵硬的几何块要么——像黑屏那样——什么都没有。然后偶然踩中了一小片区域, 画面活了秩序从混沌中浮现颜色的渐变刚好流畅结构刚好自相似又不重复细节刚好丰富又不杂乱甚至不知道为什么这个参数组合能工作——只是知道它工作了。这片能让画面“活”的参数区域在整个参数空间中可能只占百万分之一。这是图形学宇宙中的精细调节问题。在屏幕前进行的参数调整和那个假设中的“宇宙参数调节者”做的事情在数学本质上是同一件事在一个几乎处处是黑暗的参数空间中寻找那几个能让结构存在的幸运坐标。区别只在于参数调整者知道自己不是神——只是一个在黑暗中摸索的创造者用试错代替全知用随时可以按下的 CtrlZ 代替不可逆的宇宙创生。五、人择原理的具象化从哲学思辨到可复现实验幸存者偏差的两个版本人择原理最朴素也最被诟病的表述是“宇宙常数之所以是这个值是因为如果不是就不会有人在这里问这个问题。”哲学家批评这是循环论证。它没有解释为什么常数是这个值只是说“如果它不这样就不会有观察者存在”。这确实没有给出机制上的解释但它指出了一个不可忽视的统计事实任何有能力观察宇宙的观察者必然诞生于一个能支持观察者存在的宇宙。这是一种选择效应不是因果解释。图形学给出了一个可以亲手操作、亲眼验证的类比版本。如果随机生成 100 万个着色器参数组合然后让它们全部在屏幕上渲染会发现99.9% 以上的组合给出的画面是噪声、色块或黑屏。只有极少数的组合——可能几十个甚至几个——能产生被称为“美”的结构。而视觉系统对秩序与复杂度平衡的偏好恰好与这些组合的输出重叠。这是“视觉人择原理”能看见分形图案不是因为调对了参数而是因为只有在看到好画面时才会停下来。那些产生黑屏的参数组合早就被划过去了就像那些没有原子、没有观察者的死寂宇宙从未出现在任何意识的注视之下。这个类比将一个抽象的哲学思辨变成为了一个可复现的、几秒钟内就能跑完的实验。任何人只要打开着色器编辑器在参数空间里随机游走就能亲手体验精细调节的残酷和幸存者偏差的必然。创造者的视角但这里还有一个更深层的翻转。在经典的人择原理中人类是宇宙的被动观察者——常数已经定了我们只是恰好存在于这个宇宙中的那批幸运儿。但在着色器的世界里程序员是主动的创造者。不是被动地发现一个参数组合能工作而是主动地在黑暗的参数海洋中航行用经验和直觉绘制着那张只有几座小岛的海图。这个身份的翻转带来了一个全新的视角如果我们的宇宙也有一个“创造者”他面对的参数空间应该和程序员面对的参数空间在数学上是同构的。他也不是全知的——如果存在一个让宇宙产生稳定原子的参数组合他可能也是在那片几乎处处黑暗的空间里经过了漫长的试探才找到了1/1371/1371/137。或者更可能的是根本没有什么试探。无限多的宇宙存在于参数空间的每一个点上每一个都有自己的一套常数。其中的绝大多数在诞生的瞬间就坍缩了、离散了、热寂了。只有极少数——包含我们在内的这一个——恰好落在了那个狭窄的稳定岛上得以演化出结构和意识。这是多重宇宙理论在参数空间中的推论。而着色器编程给了我们一个在桌面上模拟这个推论的微缩沙盘。六、常数的背后沉默的数学骨架在这个故事里有一样东西从始至终没有被改动过。不是那个被改了又改回来的缩放倍数不是那些随着参数变化而聚散的分形结构不是屏幕上的任何可见之物。是数学本身。着色器里的那个迭代公式——平移、旋转、缩放——它本身的逻辑没有变。无论给它喂 9 还是 99 还是 0.001它都忠实地执行同一个算法。变的是输入变的是输出的结构但算法本身毫发无伤。物理宇宙也是如此。改变精细结构常数改变的是电磁相互作用的强度但电磁相互作用的存在本身没有变。薛定谔方程的形式不变库仑定律的平方反比形式不变量子力学的整个公理体系不变。变的是参数不是定律。这引出了一个更底层的推论数学骨架是唯一不依赖参数的存在。它是所有可能宇宙的共同底层是那个即使所有参数都失效、所有结构都崩塌之后依然逻辑自洽、纹丝不动的基底。一个有趣的思想实验如果能改变数学本身呢如果111111不再等于222如果逻辑排中律不再成立这已经超出了我们能讨论的边界因为讨论本身——语言、逻辑、因果——都建立在那些最底层的数学结构之上。我们无法跳出系统去评价系统。七、结语两个工位同一片黑暗回到那个着色器的故事。缩放倍数从 99 改回 9分形从中心重新舒展开十字图案一圈一圈重新浮现。屏幕亮了。秩序从混沌中重新凝结像退潮后的沙滩重新露出纹路。编写着色器的程序员和在纸上推演精细结构常数偏移后果的理论物理学家身处两个完全不同的工位。一个面对 GPU 和代码编辑器一个面对黑板和场方程。但他们探索的是同一片黑暗的参数海洋用不同的船在不同的尺度上寻找着那几座叫做“结构”的孤岛。支撑他们探索的是同一具沉默的数学骨架。等待着他们的是同一个在参数越界时冰冷降临的黑屏——只不过一个叫渲染失败一个叫热寂。而让他们继续下去的是同一个渺小又倔强的愿望在几乎处处都是虚无的参数空间中找到那个能让光、结构和意义存在的坐标然后对彼此说 —— “你看这里能活。”