Как стать автором
Обновить

Комментарии 22

Сталкивались ли вы в ходе подготовки статьи, например, с плагинами для Blender, реализующими подобные вычисления?

Конкретно блендером я никогда не пользовался, и поэтому на плагины к нему не смотрел.
Но вообще конечно я далеко не первый, кто решал такую задачу. Есть вот тут https://spaceengine.org/articles/visualizing-general-relativity/ что-то похожее, и по-видимому более оптимальным способом, или вот научная статья: https://arxiv.org/pdf/1109.4769
Но это все уже дополнительные надстройки над просто трассировкой геодезических. Здесь же я хотел решить задачу максимально в лоб, и воспользоваться этим чтобы поизучать OpenGl, и разобраться получше с численными методами.

Для вычисления арктангенса x/y лучше воспользоваться функцией atan2, она хорошо себя ведет в окрестности нуля и бесконечности. В частности, в функции cart_to_sh не нужно будет шаманить с фи.

И правда, спасибо! Только в GLSL, оказывается, обычный atan умеет принимать два аргумента.

atan можно вообще не использовать, если подставить его в синус/косинус, а затем сократить (аналитически). Например:

\sin \left(\frac{\pi }{2}-\arctan\left(\frac{\text{pos}.z}{\sqrt{(\text{pos}.x)^2+(\text{pos}.y)^2}}\right)\right)=\frac{1}{\sqrt{1+\frac{(\text{pos}.z)^2}{(\text{pos}.x)^2+(\text{pos}.y)^2}}}

А atan2 не так работает?

Atan2 просто делит меньший аргумент на больший, чтобы избежать деления на ноль, и высчитывает квадранты исходя из знаков аргументов. А мой комментарий был про другое - в цепочке преобразований угол, как правило, является лишь промежуточным значением, который в конце опять преобразуется в декартовы координаты. В таком случае через экспоненциальную форму можно избавиться от тригонометрических функций и свойственных им неоднозначностей. Ну и функция корня вычислительно проще и быстрее тригонометрических.

Интересно! Наваял как-то библиотеку символьных вычислений (+ кое какие численные метоы на борту) на Расте. Будет интересно повторить Ваш эксперимент...

Не только всю сферу от горизонта видно будет, но и бесконечно много её повторов вон в той внешней полосочке ;)

А вот эта картинка имеет к статье какое-то отношение или это про другое?

И чуть более реалистичная версия, с внутренним краем диска на последней стабильной орбите

Прямо почти ваша картинка

Зачем вычисления в сферических координатах? Не усложняет ли это всё? Вычисления в декартовых координатах обычно ведь проще и быстрее.

сферической (т.к. именно в ней удобно работать с метрикой Шварцшильда)

Статья интересная, но необходимо указать граничные значения phi, theta для пересчета сферических координат в декартовы.

\phi - от 0 до 2\pi, с нулем лежащим на оси x, \theta - от 0 до \pi, экватор на \pi / 2.

Не знаю что страшнее то, что я случайно наткнулся на эту статью или то, что я всё понимаю

У вас там опечатка. Уравнение перехода из сферических координат в декартовы в коде не соответствует уравнению на картинке. Фи и тетта местами перепутаны.

Там буквально не может быть опечатки, потому что уравнения получены из кода:)
То что sympy переставил местами один синус с другим - ну так имеет право, умножение коммутативно.

А я ведь об этом подумал и все равно ошибся, вы правы, я поспешил. Вообще я в восторге от этой статьи. Очень интересно!

Вспомнил первые изображения чёрных дыр, рассчитанные на ibm в 80 годах. Даже на обложку книг эту классику помещали.

Рассчитано компьютером IBM 7040 в 1978 году астрофизиком Жан-Пьером Люмине

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации