大作业 基于广义相对论的的光线步进史瓦西黑洞模拟
作业描述
其实应该是Ray Marching,光线步进。通过求解无自旋黑洞附近类光测地线方程来获得的光线路径。详细细节见github链接
这份作业其实代码量比我最开始想象中要少很多,而且还可以加一些其他细节。但为了实现它废了非常多的时间(出现过很多bug,而且对我来说还挺难debug的),主要是在思考坐标变换关系以及步进方式的细节。最后弄出来非常开心
我想大作业应该是需要很复杂的那种吧,但我这个实现完感觉又没那么复杂所以不知道能不能被作为大作业。(难点不在于代码和算法,而是广义相对论坐标变换)
效果展示
动图:
代码链接
另外:附一张光线在黑洞周围如何弯曲的示意图,是debug的时候写的作图小程序:
从图中可以看出来,我们其实能从黑洞前方“看见”黑洞的全部表面。这也表示我们肉眼看到的黑洞要比真正事件视界对应的半径大一些