Жена изучает программирование графония, озадачила, почему в сферической камере надо устанавливать диапазон изменения каких-то углов, а в свободной камере - не надо. Я задумался. В процессе обдумывания случайно понялось, зачем надо ежей причесывать, и откуда торы в мышах.
Короче, по первому пункту: SO(3) - многообразие положений свободной камеры - параллелизуемо, а S^2 - многообразие положений сферической камеры - нет.
Интерфейс движения камеры - будь то мышь, джойстик или клавиатура - задает в каждой точке многообразия положений камеры набор касательных векторов - куда сдвигать камеру при соответствующем действии пользователя. Хорошо бы, чтобы эти векторные поля были непрерывны, иначе действия юзера будут дергано двигать камеру, от чего болит голова, и юзер грустит. И хорошо бы, чтобы векторные поля были линейно независимы, иначе возникнет потеря степени свободы движения, gimbal lock на умном. Если по простому, то это ситуация, когда какое-то действие юзера не оказывает эффекта на камеру. От этого юзер бесится и разбивает клавиатуру, потому что похоже на глюк.
Ну и вот на многообразии SO(3) есть такой набор из 3 линейно независимых непрерывных векторных полей - ибо SO(3) это группа Ли, можно задать касательные векторы в единице и разнести действием группы умножением на себе. Буквально так задан интерфейс свободной камеры везде, где она используется, например, в Prey при полетах в невесомости. Кстати, кто-нибудь еще знает годные гамы со свободной камерой? Леталки не предлагать, - не фанат.
А на 2-мерной сфере набора из двух независимых полей - нет. Даже одного ненулевого поля нет. Ибо теорема о причесывании ежа. Поэтому из сферы надо что-то выкинуть, чтобы параллелизовалось. В принципе, можно только одну точку выкинуть, но там тогда странный интерфейс управления камерой получается. А вот если выкинуть два полюса, то остается вполне себе параллелизуемый цилиндр, - который используется в любой бродилке и ездилке с видом от третьего лица.
Вообще приятно осознавать, что будь наше пространство 4-мерным, то там и свободная камера была бы без ограничений (потому что SO(4) по прежнему группа Ли), и сферическая камера была бы без ограничений (потому что S^3 в этот раз параллелизуема). Жаль, что нам не надо писать 4d-игры, - это было бы проще, чем 3d.
По второму пункту.
В некотором смысле нам-то, обладателям нативной камеры в голове, никто не мешает поднять голову больше чем на 90 градусов, - и встать на мостик например. Можно завести в качестве модели "сферическую" камеру, у которой пространство состояний на самом деле не сфера, а тор. Тор сюръективно отображается на сферу, при этом каждой точке сферы кроме полюсов соответствует две точки на торе. Та, в которой изображение нормальное, и та, где перевернутое. Если встать в мостик, то изображение перевернется вверх торамашками, и понятия лево-право в абсолютной системе координат и в системе камеры поменяются местами. Минусов кроме этого, по сути, никаких. Если в том, что хочется снимать такой камерой, нет выделенных верха/низа, то и хрен бы с ним, пусть переворачивается. В ездилках и бродилках нам тупо не хочется, чтобы земля оказывалась сверху (вот и человеческое объяснение подъехало). Будучи занудой, я все же призываю такую камеру называть не сферической, а торической.
У Наума Улановского была статья, где задвигалась мысль, что летучие мыши навигируются при помощи тороидальной системы координат https://www.nature.com/articles/nature14031
В подробностях не копался, но когда Костя устраивал нейро-конфу, я немного Улановского помучил по другим вопросам. Он грамотно отбивался, сложилось впечатление, что мужик чёткий. Верю, что история про торы в сознании мышей - не совсем кринж. А то в Натуре всякое публикуют, проверять надо.
Мне однако было концептуально непонятно, с чего бы там вообще торам взяться. А так вот же оно! Летучему мышу и вниз ногами и вверх ногами жизнь мила. При этом, судя по фоточкам из интернетов, глаза у товарища остаются плюс-минус в горизонтальной плоскости, что в дефолтном положении, что в перевернутом. То есть до совсем свободной камеры она не дотягивает. Так у нее где-то и закрепляется в голове тор, - как структура, в которую удобнее всего граундить поток сенсорных данных, определяемый ее образом жизни.
А вот котеки постоянно голову наклоняют, - это они собирают информацию с более многомерного конфигурационного пространства. Но котеки вообще существа высокомерные и наукой принципиально непознаваемые.
Комментариев нет:
Отправить комментарий