【大作业】 基于广义相对论的黑洞光追

大作业 基于广义相对论的的光线步进史瓦西黑洞模拟

作业描述

其实应该是Ray Marching,光线步进。通过求解无自旋黑洞附近类光测地线方程来获得的光线路径。详细细节见github链接

这份作业其实代码量比我最开始想象中要少很多,而且还可以加一些其他细节。但为了实现它废了非常多的时间(出现过很多bug,而且对我来说还挺难debug的),主要是在思考坐标变换关系以及步进方式的细节。最后弄出来非常开心 :joy:

我想大作业应该是需要很复杂的那种吧,但我这个实现完感觉又没那么复杂所以不知道能不能被作为大作业。(难点不在于代码和算法,而是广义相对论坐标变换)

效果展示

动图:
moving

代码链接

Code

另外:附一张光线在黑洞周围如何弯曲的示意图,是debug的时候写的作图小程序:

从图中可以看出来,我们其实能从黑洞前方“看见”黑洞的全部表面。这也表示我们肉眼看到的黑洞要比真正事件视界对应的半径大一些

15 个赞

太酷了, 我觉得作为大作业是没有问题的。
可以把步骤和代码对应起来么?或者在代码里多加点注释这样就更赞了。

好嘞,我后续添加些细节上的解释

2 个赞

@the_afish 等了这么多年了,等到代码都不能运行了,还没等到你的后续啊:

1、步骤和代码对应,
2、在代码里加注释

您好,目前依赖库taichi_glsl不是非常兼容最新版的taichi,我已在github中添加了修改说明,参照该修改方式就能够在新版本运行。但由于时间有点久远所以很多东西已经记不太清了 :sweat_smile:

1 个赞

谢谢,代码可以运行了

不客气 :grin:,也感谢您关注本代码。如果能有所帮助就再好不过了

非常有帮助,我们正在学习,希望后面有机会还可以继续请教!!