dev optozorax
2.3K subscribers
270 photos
28 videos
10 files
241 links
Дневник программирования: компьютерная графика, порталы, клавиатуры, QMK, парсеры, компьютерная алгебра.

ЯП: Rust.

98% контента делаю сам, редко репосчу.

Автор: @optozorax
Сайт: optozorax.github.io
Download Telegram
Я пилю порталы на библиотеке macroquad, за счёт того что она очень проста, может компилироваться в WASM и запускаться в браузере. Но у неё есть одна проблема: если хочется посмотреть какой-то функционал в действии, то надо компилировать примеры вручную и всех их перебирать. А примеров очень много, ввиду того что хочется на каждую сложную фичу по примеру, ну или хотя бы объясняющий пример для набора фич, а у игровых движков фич много.

Поэтому я принял участие в создании сайта, на котором содержатся все примеры этой библиотеки, скомпилированые в WASM. Этот сайт создаётся полностью автоматически, даже скриншоты! (Кстати что уже помогло обнаружить пару багов.)

macroquad.rs

https://twitter.com/fedor_games/status/1389597331121754114
Я закончил все фундаментальные монопорталы!

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

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

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

⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Масштабирующий монопортал

Данный монопортал построен на основе вращающего монопортала. Ему для непрерывности необходимы поддерживающие порталы.

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

Этапы построения:

# Добавляем дверной проём от поддерживающих монопорталов


Сначала берём вращающий монопортал и задаём ему форму квадрата с дыркой посередине.

Потом добавляем дверной проём, через который дальше мы вырежем порталы в пространстве.

После добавления видно что портал разделён на две визуальные части: левую и правую.

# Масштабируем одну часть

Теперь, так как у нас портал разделён на две части, мы можем изменить масштаб одной части. При изменении масштаба нужно чтобы размеры по диагонали совпадали с учётом масштаба. Поэтому нижняя часть левой части увеличивается.

# Немного другой масштабирующий монопортал

Если отменить зеркалирование одной части, то получится это.

⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Смещающий монопортал 2

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

⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Масштабирующий монопортал 2

Он собран из смещающего монопортала, верхняя часть которого превращена в трапецию и в соответствии с этим изменился масштаб всего что от неё зависело.

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

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

Предварительный ответ — нет, но кто знает)
Портал в форме логарифмической спирали

Это просто вращающий масштабирующий монопортал, о котором я ранее рассказывал, только в немного другой форме. Если путешествовать по нему кругами, то будет казаться что вы поднимаетесь или опускаетесь по логарифмической спирали.
Я тут хочу провести эксперимент: выложить все монопорталы в твиттер разом. И для этого мне нужны 4 картинки для привлечения внимания в первом твите. Пожалуйста выберите 4 варианта которые вам понравились больше всего.
Final Results
35%
Обычный монопортал
49%
Тройной монопортал
24%
Вращающий монопортал
11%
Смещающий монопортал
19%
Масштабирующий смещающий монопортал
27%
Масштабирующий вращающий монопортал
43%
Логарифмическая спираль
81%
Монопортал Мёбиуса
dev optozorax
Я тут хочу провести эксперимент: выложить все монопорталы в твиттер разом. И для этого мне нужны 4 картинки для привлечения внимания в первом твите. Пожалуйста выберите 4 варианта которые вам понравились больше всего.
Всем спасибо за участие, совпало с моим выбором на 3/4, я не ожидал что обычный монопортал вырвется так вперёд)

Опубликовал в твиттере: https://twitter.com/optozorax/status/1390241834232913923.

В этот раз я попробовал публиковаться по-другому:
• Много вещей за один раз.
• Видео очень короткие, показывают только суть, без конструирования.
Снова у меня новые сцены. Но теперь они не про какие-то мозговыносящие вещи, а про базовые. Я знаю что много людей не понимает что у меня тут вообще происходит, поэтому такие объясняющие сцены важны. Я планирую на основе этих сцен создать объясняющее видео про портал в портале и выложить его на Ютуб: собрать все объяснения и мои комментарии в одно место, чтобы не было разрозненно как в этом канале.

⬇️
Основы

В этой сцене рассказывается что такое портал, откуда он взялся и как его можно создать. Сцена подойдёт для тех кто не играл в Portal/Portal 2.

Очень часто порталы сравнивают с зеркалами, поэтому имеется опция «Mirror», которая позволяет отключить телепортацию света и объектов и просто превратить порталы в зеркала.

---

Для нас привычна концепция двери — она позволяет перейти из одной комнаты в другую. Но куда важнее не сама дверь, а дверной проём, потому что именно он соединяет две комнаты, разделённые стенами.

Видимо идея портала была вдохновлена именно им.

В этой сцене показаны две комнаты, соединённые дверным проёмом.

⬇️
Подобно тому как дверной проём может соединять две комнаты, обычный портал может соединять два мира.

Можно сказать что портал — это дверной проём между пространствами.

⬇️
Интересности начинаются когда мы помещаем порталы в один мир.

В данной сцене показаны два портала друг напротив друга. Треугольник всё время двигается прямо, но благодаря возможности порталов телепортировать, его движение зацикливается.

Заметьте, что когда мы смотрим в голубой портал, мы видим снова только голубой портал; аналогично с оранжевым; а у изображения треугольника мы всегда видим спину.

А теперь попробуйте заменить порталы на зеркала. Теперь в каждом зеркале мы видим чередование голубого и оранжевого зеркала; а у изображения треугольника чередуется перед и спина.

⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Это просто немного другое расположение двух порталов в одном мире.

При Distance = 0 получается 4-монопортал, за подробностями смотрите в сцену N-monoportal.

⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Из любого дверного проёма можно создать порталы.

Можно сказать как будто мы рвём пространство-время между половинками дверного проёма.

⬇️