欢迎到来。若想注册,请私信知乎 王霄池。
多知乎(取自 孰为汝多知乎),一个意见强烈,观点极端的问答社区。解放知识,让人们认识世界、改造世界。

分类

最新提问 分类:自然科学 | 用户: (490 分)
重新分类 用户:

1个回答

0 投票

有一个理论是在《失控》中提出来的:

想要知道真实世界的结果只有一个方法,那就是运行这个世界。

要想完全精确的模拟这个世界运行,那就只有再造一个一模一样的世界了。

题主在补充里说道:“为什么真实世界里无论简单还是复杂的物理过程发生得都毫不费力?”但事实上,真实世界里哪怕看起来再简单不过的物理过程都复杂的不知凡几。

简单如玻璃杯掉在地上摔碎,都有超过亿亿个分子在互相作用。玻璃的裂痕为什么是这样的而不是那样的?为什么这次的声音比上一次摔碎的那个要清脆?

或许我们会回答:因为那里有一些杂质,比别的地方脆弱,还因为玻璃的着地点在落地的瞬间传递的应力波是那种样子而不是这种样子。你甚至还可以接着解释:影响玻璃杯的着地姿势的包括当时的几万亿个空气里面的分子和微尘……

总之,参与的分子太多了,而描述每一个分子都需要比较大的运算量。将这些海量分子一起模拟,这大大超出了所有计算机的计算能力,在可预见的未来根本就不可能。看,上帝用一个玻璃杯打败了现在的人类。不过,我们根本就不需要这样模拟:

“需要复杂计算的情况有什么共性?”

真实世界是离散的、细致的,不精确到每个原子(甚至更深)是无法准确的复原它们。但人类在模拟现实的时候,其实不需要那么高的精准度。我们只想在视觉上复原(不需要人类肉眼分辨率以下的细节)。那么我们可以怎么做呢?近似复原。

最简单的情况,我们如何渲染一个3D的小球呢?一个自然的想法是将之模拟成多面体,然后再通过漫反射的物理规律计算光的照度,然后根据光的照度渲染。如何计算光照度呢?将光线模拟为一个比较小的小球,计算小球的运行路线以及通过的数量……对不起,打住,这种级别的运算量任何电脑都很难 hold 住,尤其是在你要渲染阿凡达的时候。你问我,这不是近似模拟吗?是近似模拟,但几乎没有使用这种算法的渲染器,它们使用的算法是这样的:将小球的边缘的颜色计算好,然后在小球被人看见的这一个面选择几个点,计算这些点的颜色值,再然后对颜色进行插值。你大呼,这不是欺骗吗?或许是吧,但这样可以保证计算的速度。这里的渲染显然利用了一个(心理学、物理)原理,物体不会有锐利的颜色变化,所有的颜色变化都是连续的。

现有的商业引擎在渲染一些难以处理的情况(比如水、烟雾)时,更是各显神通,使用各种各样巧妙的算法来计算。所谓巧妙的含义就是:又快又好的欺骗人眼。至于这是不是现实世界的运行规律,那并不重要。只要看起来像的,就是好算法。

随着硬件的提速,大家可以使用更“慢”的算法(大部分时候,更“慢”意味着更好)。我丝毫不怀疑,20年之后,计算机可以使用算法欺骗人眼。但即使是这时候的算法,依然是近似复原,只不过精度已经超过了人眼分辨率的极限。

为什么在虚拟现实技术等用物理和数学规律模拟世界需要耗费大量的计算?

回到最初的问题,这个问题有两个答案:

  1. 因为模拟世界很难。
  2. 因为我们的技术还不够强大。
最新回答 用户: (490 分)
...