29 июля 2019

Мир трехмерной гиперсферы. Геодезическая трассировка лучей в замкнутой вселенной со сферической геометрией

JavaScriptМатематикаWebGLНаучно-популярноеАстрономия
Хотели посмотреть на мир глазами существа живущего в компактной замкнутой вселенной со сферической геометрией? Посмотреть на мир без ночи? Мир, где на небе виден другой полюс планеты? Мир, где нет разницы между солнечным и лунным затмением? Добро пожаловать под кат!



Введение. Двухмерный замкнутый мир


Для того чтобы лучше понять то, что будет происходить дальше вообразим, что вы двухмерное существо и живете в двухмерном мире представляющем собой сферу. Как вы будете воспринимать ваш мир? Начнем с определения положения тел. Вы можете объявить точку, в которой находитесь, «центром вселенной», выбрать два взаимно перпендикулярных единичных вектора и пользоваться полученной декартовой системой координат в окрестностях «центра вселенной».



Однако, по мере удаления от «центра вселенной» начнут происходить странные вещи. То, что воспринималось вами как перпендикулярные прямые, при определенном удалении от «центра вселенной» превращается в то, что воспринимается вами как параллельные прямые…



… А параллельные прямые пересекаются.



Причина проста — то, что воспринимается вами как прямая, на самом деле является большой окружностьюгеодезической линией сферы. Поэтому декартова система координат непригодна для определения положения тел в вашем мире — при удалении от «центра вселенной» она теряет смысл.



Вам придется выбрать другую, более подходящую для использования в вашем мире, систему координат — полярную. Эта система координат естественна и непротиворечива. Действительно — угол между полярной осью и направлением на тело остается постоянным вне зависимости от расстояния до тела.



Умея определять положение тел, мы можем мысленно исследовать ваш мир и описать некоторые эффекты, проявляющиеся по мере удаления от «центра вселенной» и обусловленные тем, что ваш мир представляет собой сферу.

Обратная перспектива. Обычно при удалении тела от «центра вселенной» его угловой размер уменьшается. Однако, на расстоянии больше чем четверть длины геодезической линии от «центра вселенной» при удалении тела его угловой размер будет увеличиваться. Этот эффект связан с тем что расстояние между геодезическими линиями сферы до экватора увеличивается, а после экватора уменьшается. Тело, удаленное на одно и то же расстояние от экватора будет иметь один и тот же угловой размер вне зависимости от того по какую сторону от экватора оно лежит. И этот угловой размер будет больше чем угловой размер тела на экваторе.



Растягивание тела на все небо. Здесь термин все небо используется в значении — все поле зрения двухмерного существа (верхнее и нижнее или переднее и заднее). Если тело находится вблизи точки противоположной «центру вселенной», то куда бы вы ни посмотрели, вы встретитесь взглядом с этим телом. У тела не будет точки, которую невозможно было бы увидеть — каждой точке найдется место на небе. Это предельный случай эффекта обратной перспективы.



Симметричное преобразование тел. Если тело находится на расстоянии больше чем половина длины геодезической линии от «центра вселенной», то вы будете видеть это тело симметрично преобразованным — левая и правая стороны тела поменяются местами. Обычно левый и правый лучи выпущенные из «центра вселенной» попадают в левую и правую сторону тела. Однако, на расстоянии половины длины геодезической линии от «центра вселенной» лучи пересекаются и после пересечения попадают в противоположные стороны тела.



Вторая прямая и обратная перспективы. Этот эффект так же наблюдается если тело находится на расстоянии больше чем половина длины геодезической линии от «центра вселенной». На расстояниях от половины до трех четвертей длины геодезической линии от «центра вселенной» при удалении тела его угловой размер снова будет уменьшаться (прямая перспектива). На расстояниях от трех четвертей до целой длины геодезической линии от «центра вселенной» при удалении тела его угловой размер снова будет увеличиваться (обратная перспектива). Этот эффект, как и эффект обратной перспективы, связан с изменением расстояния между геодезическими линиями сферы — на обратном пути к «центру вселенной» расстояние между геодезическими линиями сферы до экватора увеличивается, а после экватора уменьшается.



Двойники. У каждого тела в вашем мире будет двойник — если вы видите перед собой тело, то обернувшись вы сможете увидеть его обратную сторону (двойник). Луч, выпущенный по длинному пути, обходит ваш мир и попадает в обратную сторону тела. Следует отметить, что поверхностью двойника будет та часть поверхности, которую вы не видите перед собой, и она будет симметрично преобразованной. Здесь термин поверхность используется в значении — граница двухмерного тела воспринимаемая двухмерным существом — применительно к кругу фактически речь идет о дуге окружности воспринимаемой двухмерным существом как отрезок, однако, для наглядности, мы будем выделять цветом не только дугу, но и лежащую за ней часть круга.



Прохождение тела через точку противоположную «центру вселенной». Поскольку эффект растягивания тела на все небо является весьма необычным мы рассмотрим его подробнее. На рисунках: окрестность точки противоположной «центру вселенной».



Видно, что:

  • вначале расположенная перед вами поверхность тела увеличивается (окрашена синим цветом), а расположенная позади вас — уменьшается (окрашена голубым цветом); при этом обе поверхности имеют одинаковые угловые размеры — то есть расположенная перед вами поверхность тела стягивается (все большая часть поверхности лежит в пределах каждого градуса), а расположенная позади вас — растягивается (все меньшая часть поверхности лежит в пределах каждого градуса)
  • когда тело касается точки противоположной «центру вселенной» угловой размер обоих поверхностей равен 180 градусам — одну половину неба (перед вами) занимает вся поверхность тела, а вторую половину неба (позади вас) занимает точка, лежащая на обратной стороне тела
  • пока центр тела совмещается с точкой противоположной «центру вселенной» происходит процесс обратный стягиванию и растягиванию
  • когда тело расположено в точке противоположной «центру вселенной» его поверхность в неискаженном виде растянута на все небо
  • сползание тела с точки противоположной «центру вселенной» выглядит аналогично

Двойной горизонт. Представим, что вы живете на двухмерной планете. Опустив взгляд вниз, вы видите поверхность вашей стороны планеты, а подняв взгляд вверх, вы видите… поверхность обратной стороны планеты. Причем она будет очень сильно стянута — видна и поверхность обратной стороны планеты и та часть поверхности вашей стороны планеты, которая находится за вашей спиной за горизонтом — вы можете увидеть все это у себя над головой. Небо будет представлено в виде узкой как ниточка полоски зажатой сверху и снизу горизонтами вашей и обратной сторон планеты. Это комбинация эффекта растягивания тела на все небо и эффекта двойника. Вообще, в вашем мире, если вашему взгляду ничего не мешает, то прямо перед собой можно увидеть свой затылок… здоровый такой затылок, во всех подробностях… растянутый на все небо)



Мир без ночи. Представим, что двухмерная планета на которой вы живете вращается вокруг двухмерной звезды. Свет, испущенный звездой по короткому пути, падает на дневную сторону планеты. В то же время, свет, испущенный звездой по длинному пути, обходит ваш мир и падает на ночную сторону планеты. Ночи больше не существует. Все что осталось — это закаты и рассветы, которые будут происходить одновременно — когда перед вами обращенная к вам сторона звезды начнет заходить за горизонт, позади вас из-за горизонта начнет восходить обратная сторона звезды. Конечно, можно выделить истинные закат и рассвет по длине пути, который прошел свет, но отличить их от двойников будет практически невозможно.



Есть и предельный случай. Если планете не повезло и она находится в точке противоположной звезде, то звезда будет растянута на все небо, но любоваться этим будет проблематично, так как на планету обрушится весь свет испущенный звездой (при отсутствии поглощения и рассеяния света межпланетной средой).

Солнечные и лунные затмения. Представим, что вокруг двухмерной планеты на которой вы живете вращается двухмерный естественный спутник. Когда спутник становится между планетой и звездой его тень падает на планету. С другой стороны в это же время планета становится между светом, испущенным звездой по длинному пути и спутником, то есть тень планеты падает на спутник. Происходит одновременное солнечное и лунное затмения. Конечно, можно выделить истинные солнечное и лунное затмения по длине пути, который прошел свет, но отличить их от двойников будет практически невозможно. Попасть в тень, падающую на планету и ее спутник во время затмений — единственный способ побыть в темноте в вашем мире)



Трехмерный замкнутый мир


Выше мы рассмотрели удивительный мир двухмерного существа. А как насчет нас, трехмерных существ? Какова геометрия Вселенной? К сожалению, наука пока не может дать ответ на этот вопрос. В основном мешают свойства и размер Вселенной. Попробуем помочь науке. Выберем в качестве кандидата наиболее интересную замкнутую вселенную со сферической геометрией и визуально исследуем ее. Будут ли наблюдаться эффекты открытые нами для двухмерного аналога? Может быть, мы узнаем что-то новое? Что-то, чего не ожидали узнать? Или даже увидим то, что видим каждый день, но не обращаем на это внимание? Как вообще будет выглядеть такая вселенная?

Модель


Мы будем исследовать мир, который представляет собой трехмерную гиперсферу (3-сферу) — то есть сферу, лежащую в четырёхмерном пространстве. Выберем один тип объектов для визуализации — сферу (2-сферу принадлежащую 3-сфере).

Основные понятия и соотношения
Декартовы координаты в четырехмерном пространстве — будем обозначать их как $(x_0, x_1, x_2, x_3)$ — это фактически $(x, y, z, w)$.

Гиперсферические координаты в четырехмерном пространстве (используем только углы, так как радиус нашего мира будет константой) — будем обозначать их как $(a_0, a_1, a_2)$ — это фактически $(\phi, \theta, \psi)$.

3-сфера с центром в начале координат — множество точек, радиус-вектор которых имеет длину равную радиусу 3-сферы $R$ — это наш мир

$\quad \quad x_0^2+x_1^2+x_2^2+x_3^2=R^2$

2-сфера принадлежащая 3-сфере — множество точек, радиус-вектор которых имеет длину равную радиусу 3-сферы $R$ и образует с радиус-вектором центра 2-сферы $c$ угол равный угловому радиусу 2-сферы $r_a$ — это наши объекты визуализации

$\quad \quad x_0 c_0 + x_1 c_1 + x_2 c_2 + x_3 c_3 = R^2 \cos r_a$

где

$\quad \quad r_a = r / R$
$\quad \quad r$ — геодезический радиус 2-сферы

Геодезический, угловой и условный радиус — для того что бы лучше понять что это такое рассмотрим двухмерный аналог 2-сферы принадлежащей 3-сфере — окружность принадлежащую сфере.



Красная дуга на рисунке — это геодезический радиус окружности $r$. Красный угол в правой части рисунка — это угловой радиус окружности $r_a = r / R$. Высота треугольника в правой части рисунка — это условный радиус окружности $r_n = R \sin r_a$.

Переход от гиперсферических координат $(a_0, a_1, a_2)$ к декартовым $(x_0, x_1, x_2, x_3)$

$\quad \quad x_0 = R \sin a_2 \sin a_1 \cos a_0$
$\quad \quad x_1 = R \sin a_2 \sin a_1 \sin a_0$
$\quad \quad x_2 = R \sin a_2 \cos a_1$
$\quad \quad x_3 = R \cos a_2$

где

$\quad \quad a_0$ меняется от $0$ до $2\pi$
$\quad \quad a_1$ меняется от $0$ до $\pi$
$\quad \quad a_2$ меняется от $0$ до $\pi$

Пересечение геодезической линии 3-сферы с 2-сферой принадлежащей 3-сфере.
Это соотношение будет использоваться при трассировке лучей. Пусть имеется геодезическая линия выходящая из полюса 3-сферы $(0, 0, 0, R)$ в направлении определяемом углами $a_0$ и $a_1$ — эти углы совпадают с углами определяющими направление в трехмерном пространстве в окрестностях полюса 3-сферы $(0, 0, 0, R)$

$\quad \quad x_0 = R \sin a_2 \sin a_1 \cos a_0$
$\quad \quad x_1 = R \sin a_2 \sin a_1 \sin a_0$
$\quad \quad x_2 = R \sin a_2 \cos a_1$
$\quad \quad x_3 = R \cos a_2$

упростив имеем (1)

$\quad \quad x_0 = r_0 \sin a_2$
$\quad \quad x_1 = r_1 \sin a_2$
$\quad \quad x_2 = r_2 \sin a_2$
$\quad \quad x_3 = r_3 \cos a_2$

где

$\quad \quad r_0 = R \sin a_1 \cos a_0$
$\quad \quad r_1 = R \sin a_1 \sin a_0$
$\quad \quad r_2 = R \cos a_1$
$\quad \quad r_3 = R$

подставив (1) в уравнение 2-сферы и упростив имеем (2)

$\quad \quad A \sin a_2 + B \cos a_2 = C$

где

$\quad \quad A = r_0 c_0 + r_1 c_1 + r_2 c_2$
$\quad \quad B = r_3 c_3$
$\quad \quad C = R^2 \cos r_a$

подставив (1) в уравнение 3-сферы и упростив имеем (3)

$\quad \quad D \sin^2 a_2 + E \cos^2 a_2 = F$

где

$\quad \quad D = r_0^2 + r_1^2 + r_2^2$
$\quad \quad E = r_3^2$
$\quad \quad F = R^2$

выразив из (2) $\cos a_2$ имеем

$\quad \quad \cos a_2 = (C - A \sin a_2) / B$

подставив в (3) $\cos a_2$ имеем

$\quad \quad D \sin^2 a_2 + E / B^2 (C - A \sin a_2)^2 = F$

упростив имеем

$\quad \quad a \sin^2 a_2 + b \sin a_2 + c = 0$

где

$\quad \quad m = E / B^2$
$\quad \quad a = m A^2 + D$
$\quad \quad b = -2 m A C$
$\quad \quad c = m C^2 - F$

Точка на продолжении геодезической линии 3-сферы проходящей через две точки.
Это соотношение будет использоваться при нахождении текстурных координат и внешней нормали в произвольной точке 2-сферы принадлежащей 3-сфере. Пусть

$\quad \quad O$ — центр 3-сферы
$\quad \quad A$ — центр 2-сферы
$\quad \quad B$ — произвольная точка 2-сферы
$\quad \quad C$ — искомая точка лежащая на продолжении геодезической линии $AB$ на малом угловом расстоянии $\delta$ от точки $B$
$\quad \quad D$ — точка пересечения прямых $AB$ и $OC$
$\quad \quad E$ — точка пересечения прямой проходящей через точку $D$ перпендикулярно прямой $AB$ и прямой проходящей через точку $O$ параллельно прямой $AB$
$\quad \quad r_a$ — угловой радиус 2-сферы
$\quad \quad a = (\pi - r_a) / 2$
$\quad \quad b = a - \delta$
Если $r_a > \pi$, то следует положить $r_a = 2\pi - r_a$, а $\delta = -\delta$
Найдем $\vec{OD}$

$\quad \quad \vec{OD} = \vec{OA} + \vec{AB} / |\vec{AB}| \cdot |\vec{AD}|$

где

$\quad \quad |\vec{AD}| = |\vec{AB}| / 2 + |\vec{OE}|$
$\quad \quad |\vec{OE}| = |\vec{DE}| / \tan b$
$\quad \quad |\vec{DE}| = R \sin a$

найдем $\vec{OC}$

$\quad \quad \vec{OC} = \vec{OD} / |\vec{OD}| \cdot R$

Освещение
Мы будем использовать две модели освещения.

Простая модель освещения. В этой модели яркость точки поверхности зависит от косинуса угла между внешней нормалью к поверхности и направлением на наблюдателя. Мы будем использовать ее при построении изображений для пояснительного материала. Фактически — это модель с точечным источником света расположенным там, где находится наблюдатель, в которой яркость точки поверхности не зависит от расстояния до источника света.

Реалистическая модель освещения. В этой модели будет выделенный точечный источник света. Мы будем использовать ее при построении реалистических изображений. Эта модель может учитывать влияние площади волнового фронта на яркость точки поверхности (фактически — влияние расстояния до источника света). В замкнутой вселенной со сферической геометрией площадь волнового фронта прямо пропорциональна квадрату условного радиуса сферы с геодезическим радиусом равным расстоянию от точки поверхности до источника света. При удалении от источника света площадь волнового фронта до экватора увеличивается (лучи света расходятся), а после экватора уменьшается (лучи света сходятся, фокусируются). После прохождения точки противоположной «центру вселенной» происходит обратный процесс: лучи света вначале расходятся, а потом снова сходятся. Кроме того эта модель может учитывать особенности восприятия (закон Вебера — Фехнера).

Для построения изображения будем использовать обратную трассировку лучей. Что бы модель была интерактивной (мы будем осматривать наш мир и перемещаться в нем) изображение должно строиться в режиме реального времени. Поэтому вычисления будем выполнять во фрагментном шейдере (используем WebGL). Интерфейс реализуем на JavaScript.

Текстуры
Текстура earth.jpg отсюда



Текстура moon.jpg отсюда



Текстура sun.png отсюда



Первое знакомство


Создадим трехмерный замкнутый мир с длиной геодезической линии равной 100 — так нам будет проще ориентироваться — экватор нашего мира будет расположен от наблюдателя на расстоянии 25 (четверть длины геодезической линии), а противоположный полюс нашего мира — на расстоянии 50 (половина длины геодезической линии). Поместим в наш мир планету и окрасим части ее поверхности в цвета зависящие от того в какой октант они попадают:

Октант Знак X Знак Y Знак Z Цвет
I + + + Красный (Red)
II - + + Зеленый (Green)
III - - + Синий (Blue)
IV + - + Оранжевый
V + + - Голубой (Cyan)
VI - + - Пурпурный (Magenta)
VII - - - Желтый (Yellow)
VIII + - - Белый

В качестве основной текстуры будем использовать текстуру шахматная доска 3x6, то есть каждая параллель и меридиан будут проходить ровно через 12 ячеек. В качестве альтернативной текстуры будем использовать текстуру земной шар. Ниже показаны снимки ознакомительного облета нашей планеты.

Снимок Северного полюса. Ось X направлена вправо, ось Y направлена вверх, ось Z направлена на нас. При наложении альтернативной текстуры можно увидеть:

  • справа — Тихий океан
  • сверху — Северную Америку
  • слева — Атлантический океан
  • снизу — Евразию



Снимки перелета от Северного полюса к экватору и от экватора к Южному полюсу.



Снимок Южного полюса. Ось X направлена вправо, ось Y направлена вниз, ось Z направлена от нас. При наложении альтернативной текстуры можно увидеть:

  • справа — Тихий океан, Новую Зеландию, Австралию
  • сверху — Индийский океан
  • слева — Атлантический океан, Африку
  • снизу — Южную Америку



Визуальное исследование


Проведем визуальное исследование нашего мира с целью обнаружить аналоги эффектов открытых нами в двухмерном замкнутом мире.

Двойники. Как и в двухмерном аналоге у каждого тела в нашем мире будет двойник — если мы видим перед собой Северный полюс, то обернувшись мы сможем увидеть… Южный полюс. Стягивание поверхности двойника заметно из-за того что мы находимся достаточно близко к планете.



Эксперимент, при котором наблюдатель удаляется от планеты (цифра в левом верхнем углу каждого снимка — это дистанция между наблюдателем и планетой).



Видно, что:

  • вначале угловой размер планеты уменьшается — это обычная прямая перспектива
  • потом, когда планета прошла экватор нашего мира (дистанция более 25), ее угловой размер увеличивается — это знакомый нам эффект обратной перспективы
  • при наползании на противоположный полюс нашего мира мы видим стянутую поверхность (дистанция 46,875)
  • когда планета находится на противоположном полюсе нашего мира (дистанция 50) ее растягивает на все небо
  • при сползании с противоположного полюса нашего мира мы видим растянутую поверхность (дистанция 53,125)
  • после того как планета прошла противоположный полюс нашего мира она выглядит симметрично преобразованной — красный октант поменялся с синим и так далее
  • затем, угловой размер планеты уменьшается (дистанция от 50 до 75), а потом увеличивается (дистанция от 75 до 100) — это знакомый нам эффект второй прямой и обратной перспективы

Артефакты. При использовании модели было замечено, что во время прохождения планеты через точки лежащие от наблюдателя на расстояниях 25, 50 и 75 возможно появление артефактов — на планете может «вырасти шерсть» или она может вообще «рассыпаться». Видимо моя математика чего-то не учитывает)



Снимок планеты в окрестностях противоположного полюса нашего мира (использован широкоугольный «объектив»). Поверхность планеты перед нами сильно стянута — видно не только все Северное полушарие, но и часть Южного полушария за экватором. Поверхность планеты позади нас сильно растянута — крупно виден Южный полюс. Обе поверхности тянутся друг к другу пытаясь как бы заключить нас в сферическую оболочку и явить нам картину планеты растянутой на все небо.



Эксперимент, при котором наблюдатель поднимает взгляд (цифра в левом верхнем углу каждого снимка — это угол между направлением вниз и направлением взгляда).



На снимках:

  • вначале появляется горизонт нашей стороны планеты
  • потом, мы видим над ним второй горизонт, где находим то, что расположено на нашей стороне планеты за нашей спиной за горизонтом
  • поднимая взгляд выше, мы видим обратную сторону планеты

Снимок двойного горизонта (использован широкоугольный «объектив»). Полоска неба достаточно велика потому что мы находимся на высоте порядка 50 км.



Снимок неба над головой (использован широкоугольный «объектив»).



Мир без ночи.
Далее для простоты мы будем называть нашу планету Землей, ее естественный спутник — Луной, а звезду вокруг которой они обращаются — Солнцем. Пропорции размеров Солнца, Земли, Луны и их орбит для наглядности не будут соблюдены.
На снимке: граница между дневной и ночной сторонами планеты проходящая через Атлантический океан. Одновременно видны убывающая и растущая Земля. Примерно такую картину видят ребята сидящие на лунных базах в нашем мире)



На анимации: движение границы между дневной и ночной сторонами Земли. Видно перекрытие Солнца диском Земли освещенным лучами Солнца выпущенными по длинному пути.



Солнечные и лунные затмения.
На снимке: Луна выходит из тени Земли. Видны границы между дневной и ночной сторонами Земли и Луны.



На анимации: солнечное и лунное затмения.



Видно, что:

  • вначале Земля отбрасывает тень на Луну, а Луна отбрасывает тень на Землю
  • потом Луна выходит из тени Земли, а тень Луны уходит с поверхности Земли
  • затем тень Луны возвращается на поверхность Земли и Луна снова заходит в тень Земли
  • граница между дневной и ночной сторонами Луны не видна при перекрытии Луны диском Земли потому что обращенная к нам сторона Луны все еще находится в тени Земли

На анимации: движение границ между дневной и ночной сторонами Земли и Луны совмещенное с солнечными и лунными затмениями. Примерно такую картину видят ребята обслуживающие обсерватории в точке Лагранжа L2 в нашем мире) Конечно, если пренебречь вращением Земли)



На снимке: рассвет на МКС в нашем мире)



Заключение


Для чего все это)? Просто очень хотелось посмотреть на мир глазами существа живущего в компактной замкнутой вселенной со сферической геометрией. Познать этот удивительный мир без символов Кристоффеля и тому подобных вещей оставаясь в рамках общего курса высшей математики. Результат перед вами. Кажется все получилось. Надеюсь, вам было интересно и хорошего дня!

Исходный код.

Рабочая модель (открывать на ПК, не для мобильных устройств).

Для тех, кого заинтересовала тематика, есть великолепная статья, в которой рассказывается об удивительных явлениях, которые можно наблюдать в реальной Вселенной: Как нарисовать чёрную дыру. Геодезическая трассировка лучей в искривлённом пространстве-времени.
Теги:гиперсфератрассировка лучейзамкнутая вселеннаясферическая геометриягеометрия Вселенной
Хабы: JavaScript Математика WebGL Научно-популярное Астрономия
+69
19,3k 90
Комментарии 74
Похожие публикации
Лучшие публикации за сутки