Те, кто играл в Portal, либо видели, либо задавались вопросом о том что будет если засунуть портал в / Portal 2 :: Portal (портал 2 - прикольные картинки) :: сделал сам (нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам) :: Игры

Portal Игры Portal 2 сделал сам 

Те, кто играл в Portal, либо видели, либо задавались вопросом о том что будет если засунуть портал в портал. Я решил этот вопрос.

Portal,портал 2 - прикольные картинки,Игры,Portal 2,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам
 

Вот гифка того что произойдёт:

Portal,портал 2 - прикольные картинки,Игры,Portal 2,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам

Я даже сделал программу, которая может запускаться в браузере, где вы можете покрутить это и засунуть под разными углами: https://optozorax.github.io/portal/?scene=portal_in_portal (осторожно, с телефона лучше не открывать, лучше с компа и с хорошей видюхой, сорри, просто там ray tracing'ом рисуется).

А если вам интересно почему я делаю это несмотря на «порталы не могут размещаться на двигающихся поверхностях», что там внутри портала в портале происходит и вообще как это работает, то я объяснил это в следующем видео:

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

Portal,портал 2 - прикольные картинки,Игры,Portal 2,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам


Подробнее
Решение главного парадокса порталов,Science & Technology,portal,portal 2,paradox,парадокс,ray tracing,математика,portal 1,rust language,game development,wasm,macroquad,загадка,портал в портале,portal in portal,game theory,gameplay,portals,devlog,indie game devlog,computer graphics,компьютерная графика,3d графика,портал,портал 2,рейтрейсинг,трассировка лучей,optozorax,разработка игр,game dev,геймдев,В этом видео показывается решение самой сложной загадки, связанной с порталами: «Что будет если поместить один портал в другой?». Очень подробно объясняется как это работает, и как это запрограммировано. Эпизоды: 0:00 Интро 0:23 Формулировка проблемы 0:44 Про движение порталов (простой парадокс порталов) 3:24 Две пары порталов 4:43 Почему портал обязан иметь одинаковую форму на входе и на выходе 5:52 Почему разделённый портал выглядит непрерывно 6:47 Как должен входить объект в разделённый портал 7:45 Почему сцена про две пары порталов важна 8:10 Общая информация про портал в портале 8:36 Что если посмотреть внутрь портала в портале 8:54 Что если поместить объект в портал в портале 9:36 Степени телепортации 10:53 Анимации вращения портала в портале 11:12 Основа дискретного подхода 12:24 Решение портала в портале дискретным подходом 15:04 Основа аналитического подхода 18:49 Решение портала в портале аналитическим подходом 20:38 Что если засунуть дальше, игнорируя границы 21:36 Про программу, через которую это всё сделано 22:45 На какой основе я сделал эту программу (Rust, egui, macroquad, WASM) 23:32 Заключение Ссылки: [1] https://youtu.be/LQbhGMKuvPc - геймплей с двигающимися порталами [2] https://youtu.be/B19nlhbA7-E - видео minutephysics [3] https://youtu.be/fWkAfa96OmI - моё старое видео [4] https://raytracing.github.io/ - Ray Tracing in One Weekend [5] https://optozorax.github.io/portal - моя программа в браузере [6] https://www.rust-lang.org/ - язык Rust [7] https://github.com/emilk/egui - библиотека egui [8] https://github.com/not-fl3/macroquad - библиотека macroquad [9] https://github.com/optozorax/portal - исходники моей программы [10] https://t.me/optozorax_dev - мой канал в телеграме Места где я пишу: Telegram - https://t.me/optozorax_dev Twitter - https://twitter.com/optozorax Если вы нашли ошибку в субтитрах или где-то ещё, пожалуйста напишите мне в личку в Telegram или в Твиттере.



Portal,портал 2 - прикольные картинки,Игры,Portal 2,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам
Еще на тему
Развернуть

Отличный комментарий!

Ебануло
знатно
morfree morfree 14.07.202121:06 ссылка
+41.7
А где же ссылка? Хочу порталы в браузере вертеть
Сорян, почему-то после публикации ссылка пропала, я обновил пост.
Спасибо
Открыл ссылку и думал что брат умер. Но нет, с ним всё в порядке. Вместе крутим порталы.
ShemRock ShemRock 14.07.202121:02 ответить ссылка 1.6
Да, там для портала в портале компилируются очень большие шейдеры (все 11 степеней телепортации это нехило так кода), поэтому так долго загружается.
Компилируется действительно ну очень долго.

А что это за паттерн такой? Почему 10000? Это как-то сильно дофига.

55	vec3 ray_tracing(Ray г) {
56	vec3 current_color = vec3(l.)j
57	for (int j = 0; j < 10000; j++) {
if (j > _ray_tracing_depth) { return current_color;
60
>




Компилятор очень агресивен к анролу лупов. Вернее транслятор angle https://opensource.google/projects/angle . Он транслирует глсл в хслс чтобы все это в дайректХ запускать, и во время трансляии все анролит. В итоге у тебя будут мегабайты исходного кода которые будут вечность компилироваться в байткод.

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

for (int j = 0; j <_ray_tracing_depth; j++)

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

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

for(int i = 0; i < DNU(10); i++)

Где DNU:

#define DNU(X) min(int(iResolution.x) << 16, X)

iResolution - это юниформ, который не известен во время компиляции, поэтому компилятор не может оптимизировать min(int(iResolution.x) << 16, X) и не будет анролить луп. Хотя min(int(iResolution.x) << 16, X) всегда вернет X
int16 int16 15.07.202109:34 ответить ссылка 0.4
> for (int j = 0; j
Спасибо реактор, у меня большой коммент пропал -_-
Там 10000, потому что я как раз сижу на очень древних шейдерах (100-я версия), где в цикле нельзя ставить неконстантые выражения. Это нужно как минимум из-за Safari, ЕМНИП.

Ок, спасибо за критику, тогда переделаю чтобы там по умолчанию было число 100, может тогда у людей не будет комп перезагружаться.
Проверил не Safari, действительно не работает, пишет:
'i' : Loop index cannot be compared with non-constant expression

Это пипец какой то, там 99% шейдертоя не работает.

Да и 100 выглядит как перебор, я и с 50 лимита увидеть не смог.

То же относитбся и к антиалиасингу. Замени 10000 на что-то более адекватное.
16 сэмплов должно хватать за глаза. У тебя при настройке 16, он делает 16 х 16 сэмплов, что уже перебор.

Вообще сэмплы лучше не распологать регулярной сеткой, это приводит к алиасингу. Рандомно - не идеально, т.к. рандом не даст равномерную плотность.
Идеально юзать квазирандомное расположение или как еще их называют Low-discrepancy sequence https://en.wikipedia.org/wiki/Low-discrepancy_sequence . Де факто стандартом есть Hammersley set.

Легко генериться битовыми операциями, вот пример на шейдертое: https://www.shadertoy.com/view/wdS3zm

// Low discrepancy on [0, 1] A2 vec2 HammersleyNorm(int i, int N) {
// principle: reverse bit sequence of i
uint b =	( uint(i) << 16u) (uint(i) >> 16u );
b =	(b	&	0X55555555U)	<<	lu	(b	&	0XAAAAAAAAU)	>>	lu;
b =	(b	&	0X33333333U)	<<	2u	(b	&	©xCCCCCCCCu)	>>	2u;
b =	(b	&	0X0F0F0F0FU)	<<	4u	(b	&




Такой подход называется Квази-Монте Карло интегрирование. Можно найти в любом рейтрейсере. Описывается в серии книг Ray Tracing in One Weekend

Ну это уже такое, детали. Ты просто затронул мою любимую тему - рейтрейсинг, ну меня и понесло.
int16 int16 15.07.202111:30 ответить ссылка 0.0
Если смотреть внутрь портала в портале, то 100 не хватает, видно большое белое пятно)

А по поводу квазирандомных спасибо за напоминание, как раз про это читал статью на хабре, попробую это добавить тоже потом.
Эх хабр, я там когда-то давно, лет 8 назад даже статьи писал. Но чет я уже давно на него забил как и на весь ру сегмет (кроме реактора)

А ссылочку можно на квазирандомные?
int16 int16 15.07.202111:43 ответить ссылка 0.0
Я не уверен, но скорее всего можно препроцессором проверить версию шейдеров, и в случае чего-то древнего как в сафари юзать константный лимит для лупа, а в протоивном случае не константный. Тогда во всех нормальных браузерах оно будет компилиться в миг.
int16 int16 15.07.202111:40 ответить ссылка 0.0
Ебануло
знатно
morfree morfree 14.07.202121:06 ответить ссылка 41.7
KIBARG KIBARG 14.07.202121:07 ответить ссылка 20.5
den_k den_k 14.07.202121:24 ответить ссылка 11.8
После темного экрана он не очнулся в Скайриме. Все ясно, видео - фейк.
представляю увидеть это в виаре, ух бля
не понял что произошло, он влез в портал и соединил их?
А вот если так подумать, то может, как раз, одна из таких игр с физическим движком и поможет решить какое-нибудь физическое уравнение и продвинуть человечество в развитии технологий
Bunker Bunker 15.07.202112:23 ответить ссылка 0.0
Я видел тысячи миров, я в своем познании настолько преисполнился
zZIMm zZIMm 16.07.202122:33 ответить ссылка 0.1
Я практически уверен, что где-то видел эту гифку с порталами достаточно давно...
Degzeher Degzeher 14.07.202121:13 ответить ссылка 3.0
Да, я раньше много где публиковался, но тогда у меня не было ни веб-демки, ни видео.
А ну пиздуй работать в НАСА!
trueares trueares 14.07.202121:18 ответить ссылка 7.2
Вы не видели моего кота? Зелёный, такой, фиолетовый.
Галактикот
Dhoine Dhoine 15.07.202109:49 ответить ссылка 0.0
Оу бои, только не вдавливайте портальные структуры друг в друга слишком сильно, иначе это может привести к портальному парадоксу!
MrShift MrShift 14.07.202121:52 ответить ссылка 6.4
Нестыковка. Если верен вариант Б то при впихивании одного портала в другой скоростя начинают рости в геометрической прогрессии.
MutatoR MutatoR 14.07.202121:53 ответить ссылка 1.0
Сколько степеней телепортации, столько и увеличенных скоростей в итоге получается. То есть тебе надо ещё найти конфигурацию, где количество степеней телепортации буде расти бесконечно (как например в 11:11 в видео). Но это означает лишь только то, что тебе надо прикладывать куда большую силу чтобы двигать портал дальше. А если ты не можешь приложить соответствующую силу, то по идее всё должно остановиться.

А вообще хорошая критика, спасибо, я это запишу себе.
А что если не сможешь впихнуть портал в портал, так как стрепени стакаются очень быстро и для этого нужно количество энергии, которое стремится к бесконечности?
Честно хз, я физику ещё не прорешивал досконально, не знаю как там точно должны передаваться силы через порталы, как это должно работать с рекурсией итд. Я только на логическом и визуальном уровне решил.
Очень все здорово, это очень круто.
И всё же мне кажется, что края партала не могут существовать, т к. Это вызывает парадоксы.
Интуитивна сферическая конфигурация, либо иная гладкая замкнутая поверхность.
Мы засунули портал в портал, что бы ты смотрел в портал, когда смотришь в портал.
Ulfednar Ulfednar 14.07.202122:25 ответить ссылка 2.1
один я охуеваю с того что чел ради прикола это реализовал в коде ? эх а ведь поступал в универ на ПИ чтобы научится так же развлекаться
dofus dofus 14.07.202122:43 ответить ссылка 2.5
но в итоге нихрена не умею -_-
dofus dofus 14.07.202122:43 ответить ссылка 3.0
в видосе на 3:00 логическая ошибка. Почему ты считаешь, что объект должен был вылететь из портала со скоростью? Ведь в момент наезда на него другого портала он был неподвижен, у него не было ускорения, которое бы передалось в выходной портал
yiffysan yiffysan 14.07.202123:20 ответить ссылка 0.8
Охх. смотри друже. это не так работает.
Мы стоим или движемся относительно чего то. Обычно считается, что относительно земли, но если мы возьмем например луну как точку отсчета. то луна стоит а земля движется. Мы можем сесть на самолет и полететь со скоростью луны. что бы над самолетом всегда была ночь. И тогда относительно земли мы очень быстро летим. Но для луны это земля движется а самолет застыл а месте.
Вот и если мы берем точкой отсчета пол лаборатории. то портал летит на постамент, но если берем за точку отсчета портал, то постамент стремительно приближаеться, а он сам не меняет положения. И в момент наезда портала на постамент. энергия портала превращается в энергию для постамента.
> Обычно считается, что относительно земли, но если мы возьмем например луну как точку отсчета. то луна стоит а земля движется.

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

а вот про общую теорию относительности. она какбы не признаёт что у нас есть "наша" система координат - плюс/минус, с землёй ли она связана, с луной, с солнцем - всё равно она некоторая "наша". да, некие центробежные, кориолисова (с этим тоже туго, но хоть как-то). но "наша" система отсчёта есть - как только экспериментальная наука сможет отправить датчики-измерители с одним из испускаемых фотонов - вот это будет прорыв... а так да, фотоны от нас удаляются и хоть ты сложи их скорость - они не могут превысить скорость света (это всего лишь скорость нашего с вами наблюдения, не более).
а интерет вообще нам говорит, что чувак, улетевший со скоростью, близкой к световой, и вернувшийся будет намного моложе, чем оставшиеся на земле. пятерной фэйспалм просто от такой тупости.
Ну с фотонами всё довольно сложно. Когда мы их наблюдаем происходит коллапс волновой функции и это частичка очень растянутая на длину своего пути(поэтому нельзя сказать про устарение фотона), с другой стороны эта частичка имеет свойство волны(как в эксперименте с двумя щелями) а волны всегда работают с вероятностями, что ещё больше усложняет математический аппарат.
это прокатило бы, если бы выходной портал двигался бы в обратном направлении. Тогда да - по сути остающийся на месте объект как бы "выплюнуло" бы. Но в том примере выходной портал стоит на месте ж.
Про Луну и прочее ты чёт намудрил. Если за основу берётся игра - то главное правило порталов - сохранение кинетической энергии объекта (скорости перемещения например). Вот я и говорю о том, что в том примере на момент прохождения через портал у объекта нет никакой скорости - на выход передаваться нечему
Если интересует сохранение кинетической энергии, то можно сказать что в той сцене у треугольника маленькая масса, а у порталов очень большая масса, поэтому когда треугольник выходит из синего портала, то либо синий портал начинает немножко незаметно двигаться в обратную сторону, либо оранжевый портал немножко незаметно замедляется. Но да, в той сцене я про энергию совсем не думал, только про идею передачи движения. С поправкой на энергию должно выглядеть чуть-чуть по-другому.
Тогда, по идее, предметы должно засасывать в портал, ведь как только край предмета попадает в движущийся портал он получает некий импульс в противоположном от движения портала направлении. При попытке запихнуть портал в портал они должны очень быстро набрать бесконечную скорость.
Нужно это проверить в реале хотя бы на фемтоуровне, а так это всего лишь предположения.
Перешел по ссылке, комп перезагрузился
Сорян _, там очень тяжёлые шейдеры компилируются. Можешь пожалуйста сказать какая у тебя видеокарта?
gt 710 2gb
Очень круто, спасибо.

За раст отдельный лойс.
Поставил звезду проекту, скину своим - пусть тоже поддержат. Так держать!
Psilon Psilon 15.07.202100:39 ответить ссылка 0.0
Я обязан выразить свою благодарность за интересный контент.
Спасибо.
Да лан. Первое что сделали бы это отсосали сами себе. Вот для чего нужны порталы
dimethra dimethra 15.07.202110:02 ответить ссылка 0.0
Wakfu не смотрел никто штоле? Если попытаться засунуть портал в портал то получается выброс энергии которым шмалять можно.
Насчет парадокса портала, вот допустим у нас куб весит 10.000 тонн. А стена на которой к нему летит портал весит 1 тонну. Стела летит со скорость 50км/час. Если как ты говоришь верен вариант Б, то на выходе из синего портала получим 10.000 тонн летящие со скорость 50 км час? А энергия то откуда взялась? Закон сохранения порталы не нарушают.
stozen stozen 15.07.202112:01 ответить ссылка 0.0
Ты прав, там не всё так просто.

http://joyreactor.cc/post/4860508#comment23468422
Ебать, мама, я в телевизоре!
Молодец чувак
Спасибо.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
КАК БЫ КОМНАТА ВЫГЛЯДЕЛА В:
Portal
дАалааа/
Portal 2
И Portal:
Космос, да , космос. Космос такой большой надо посмотреть всё.В космос космос, надо в космос
Prelude
подробнее»

сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам песочница Portal,портал 2 - прикольные картинки Portal 2 prelude тяжело турель куб портал

КАК БЫ КОМНАТА ВЫГЛЯДЕЛА В: Portal дАалааа/ Portal 2 И Portal: Космос, да , космос. Космос такой большой надо посмотреть всё.В космос космос, надо в космос Prelude