Переход к трехмерным формам осложнялся двумя факторами.

Во-первых, с трехмерной графикой я очень сильно на “вы” и последний раз что-то делал около года назад.

Во-вторых, текущая общепринятая модель графики базируется на полигонах, а мне нужны были воксели.

Воксели пришлось имитировать, потеряв за счет этого в качестве картинки, которая и так не блистала разрешением. Дело в том, что объемный объект, заданный в классической системе координат {(x,y,z)|f(x,y,z,t)} при повороте координат можно построить единственным образом – просчитав все положения всех точек объекта в каждый момент времени и проверив, будет ли та или иная точка принадлежать телу. Ночью я пытался вывести общее решение задачи, или хотя бы некоторые частные случаи, но формулы поверхностей оказались слишком сложны. И далее, вы поймете, почему.

Начнем с очевидного. Как будет при повороте оси времени (например, x -> y -> z -> t -> x) выглядеть обычный покоящийся шар?

Допустим, шар существует вечно. В этом случае, после поворота он станет бесконечным цилиндром, который существует лишь краткий момент времени (пока временная координата “сканирует” его толщину), появляясь из ниоткуда и исчезая в никуда. Цилиндр начнется с бесконечно тонкой нити, представляющей собой растянутую во времени вершину, затем будет утолщаться, поочередно являя нам все внутренние слои (которые мы, однако, не увидим – мы увидим лишь изменение внешней границы слоя по времени, то есть цилиндр будет совершенно однороден), затем мы подойдем к экстремуму – экватору сферы, после чего за короткий промежуток времени цилиндр схлопнется в прямую, а после – перестанет существовать в нашем восприятии.

Моделирование показало справедливость этого предположения.

Следует понимать, что из-за ограниченных вычлислительных ресурсов я вынужден был сделать модель грубой. Она существует в координатах от -10 до 10 по каждой из осей, а дискретность отсчетов составляет 0,5. Уже при таком подходе основные затруднения были вызваны не расчетами положения, а выбранным графическим движком. Я 3D не владею, поэтому вынужден был пользоваться WPF, который, конечно же, далеко не идеален.

Несмотря на то, что анимация циклична – на самом деле, объект существует лишь краткий миг.

Однако, перейдем к более интересным вещам. Первое, что я попробовал – это была “планета земля”, то есть сфера, вращающаяся вокруг центра по окружности. Если мы будем заменять на ось времени каждую из осей, мы получим две принципиально разные картинки.

Ось времени перпендикулярно движению.

И не перпендикулярна.

Определенная дискретность – свойства неудачной визуализации. На самом деле, объекты будут гладкими и монолитными, плавно перетекать из формы в форму.

Мячик, отскакивающий от пола, на удивление оказался скучным.

Зато маятник порадовал. С одной стороны, он был уныл.

Зато мы могли наблюдать, как он затухает по “времени” – оси Х.

Зато с другой – прекрасен.

Эдакий протуберанец.

Было бы интересно посмотреть более сложные виды движения – в частности, хочется смоделировать человека. Увы, здесь мои знания 3Д-графики дают сбой, но я работаю в этом направлении.

Share →

6 Responses to Поворот оси времени, часть 2

  1. Азат says:

    С помощью чего ты, собственно, моделируешь это все? Я что-то пропустил.
    И непосредственно смена осей моделируется, или ты применяешь моделирование в пространстве так, как себе это представляешь?

    • bober_maniac says:

      Не знаю, мне просто взбрело в голову и захотелось понять, а чего так можно добиться.

      Модель – это фактически то, как мы видим объект из привычного нам пространства, в то время как сам объект существует в “повернутом”.

  2. GlebZ2 says:

    Про пространство Минковского слыхал? Физики там и не такое вертели. Правда для того чтобы это представлять геометрически – необходимо быть слепым.

    • bober_maniac says:

      Да, слышал, и даже читал. Правда подробно не разбирался.

      Надо, наверное, освежить в памяти.

Leave a Reply

Войти с помощью: 

Your email address will not be published. Required fields are marked *

PageLines