TGViewer
Channel Public Channel
optozorax

optozorax

@optozorax_dev

По деловым предложениям: optozorax.work@gmail.com.

Связь с админом через личку канала (кнопка в канале слева снизу).

Ютуб: https://www.youtube.com/@optozorax

Бусти: https://boosty.to/optozorax
Патреон: https://www.patreon.com

Сайт: optozorax.github.io
Subscribers
4.63K
Photos
388
Videos
60
Links
303
Recent Posts 14 shown
Post #946 1.61K

Forwarded from Onigiri

Там в стиме вышло демо стрелочек!
https://store.steampowered.com/app/5193870/Logic_Arrows_Demo/
Добавил более понятное обучение, персонажа, анимации, темную тему и многое другое.
Демо пока больше для новых игроков и для тестов. Сами стрелочки еще добавлены не все. Но полную версию планирую выпустить уже через 2 месяца 🤬

Кстати, там в дискорде организовали конкурс по конструкциям из доступных стрелочек!
Steampowered Logic Arrows Demo on Steam Logic Arrows is a sandbox game where you design your own mechanisms: from logic gates to an entire computer. Use simple elements to build complex systems, solve engineering challenges and master computer logic.
  • 🎉 41
  • ❤ 17
  • 🔥 6
  • 🥰 3
  • 👀 3
  • 👍 2
  • 🆒 2
Post #944 3.9K
Ожидание: сделаю видео в 3D, просто отрендерю сцены в стерео и дело в шоколаде, заработаю миллион денег, Джеймс Кэмерон посмотрит моё видео.

Реальность: по сценарию щас кратко показываю код как делается червоточина. Так как видео 3D, то не очень хочется делать просто монтаж, поэтому... Я решил сделать чтобы блоки кода появлялись прямо в 3D сцене рядом со всем... И так с каждой анимацией... +100 лет к времени делания видео...
  • 🙏 83
  • 🫡 33
  • 👍 16
  • ❤‍🔥 10
  • 👨‍💻 6
  • 😢 5
  • ❤ 4
  • 😁 4
  • 🤩 3
  • 🐳 2
  • 👀 1
Post #942 4.62K
Недавно я навайбкодил VR-версию моей программы Portal Explorer.

Скачать можно тут: https://github.com/optozorax/portal-vr-compositor/releases/tag/1 (файл
portal-vr-windows-x64.zip)

Работает к сожалению только для Windows. Запускаете START-PORTAL-VR.bat и у вас показывается "виртуальный экран", на котором видно только окно Portal Explorer, оно полностью дублирует как это окно выглядит на вашем основном мониторе, можете управлять им мышкой и клавиатурой, можете его перемещать, изменять размер, максимизировать. Управление через контроллеры отсутствует.

Рендерится оно в стерео-формате, как 3D кино, и ваше положение головы не учитывается. Сделал я это чтобы для следующего видео отлаживать как анимации выглядят в VR шлеме. Да и вообще чтобы поиграться и посмотреть на свои порталы в 3D. Кто помнит, я уже давно сделал стерео-рендеринг в Portal Explorer (https://t.me/optozorax_dev/858), но тогда без VR приложения.

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

Как выяснилось, не существует такого API, чтобы можно было рисовать две разные картинки под два разных глаза, и это работало одновременно для реальных 3D мониторов, и для виртуальных десктопов в VR шлеме. Так же не существует такого API чтобы в VR захватывать не всю зону рисования, а нарисовать только своё окно где-то висящим. Поэтому пришлось писать своё. Я сделал минимальную версию, где просто имитируется виртуальный экран, и на нём показывается окно Portal Explorer где оно расположено на реальном экране, и им можно управлять мышью.

Я не стал делать чтобы остальная часть рабочего стола рисовалась, ибо это уже переусложнение, и моя цель не в том чтобы сделать свой композитор, а только в том чтобы показать Portal Explorer.

Пока что это приложение только тест и референс для будущих усилий по полноценной поддержке VR в OptoLab, поэтому я не даже не смотрел на код, только отлаживал чтобы работало корректно.

Надеюсь в будущем появится хороший API для этого и все программы будут не только поддерживать 3D мониторы, но ещё и у нас появится полноценная VR операционная система, где каждое окно можно расположить в любом месте в пространстве, и каждое окно сможет рисоваться в 3D.

Если у вас есть VR шлем, то пишите ваш фидбэк в комментах!
  • 👍 49
  • ❤ 14
  • 🔥 9
  • 🤔 3
  • 👀 2
  • ❤‍🔥 1
  • 🥰 1
Post #941 4.3K
  • ❤ 37
  • 👀 13
  • 👍 10
  • 👎 4
  • 🔥 2
  • 🥰 1
  • 😈 1
Post #939 3.2K
Следующее видео будет про червоточины!

Вот вам кадры основной сцены. Очень сильно заморочился с миром с двух сторон, чтобы выглядел интересно и было за что глазу ухватиться. Начал с облаков, а затем меня стало не остановить... Ах да, это ещё рисуется path tracing'ом. Помните, я о нём рассказывал?

Сценарий уже написан, видео будет примерно на 15 минут, оч простое (по сравнению с моими обычными видео), такое введение в червоточины. С объяснениями и красивыми картинками.
  • 🔥 129
  • ❤ 24
  • 👍 11
  • ❤‍🔥 4
  • 🥰 2
  • 👀 2
  • 🆒 2
  • 🤪 1
Post #935 5.29K
У меня клавиатурная обновка - трекпад.

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

И вот недавно создатели этой клавиатуры выпустили трекпад, который подключается к клавиатуре и позволяет управлять мышью. К сожалению из коробки у них есть только корпус к их новейшей клавиатуре, а к моему старичку мунляндеру - нет. Поэтому я решил что задизайню свою держалку сам и распечатаю её на 3D принтере.

И вот, спустя много дней мучений, задизайнил держалку в FreeCAD (господи, какая же кривая программа), и распечатал её на 3D принтере, это моя первая 3D-модель!

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

А теперь, раз трекпад наконец-то хоть как-то держится рядом с клавиатурой, начну им пользоваться и потом отпишусь вам каково это, можно ли выкидывать мышь уже или нет.
  • 🔥 67
  • 👍 13
  • 🥴 13
  • ❤ 10
  • 😐 3
  • 🎉 2
  • 🤮 2
  • ❤‍🔥 1
  • 🥰 1
Post #934 4.97K
Post #931 5.49K
Следующее видео на русском готово, осталось перевести на английский и можно выпускать
  • 🔥 121
  • ❤ 21
  • 👍 6
  • 🤡 3
  • 👀 3
  • ❤‍🔥 2
  • 🆒 2
  • 🥰 1
  • 👏 1
  • 🐳 1
Post #930 6.05K
Знаете, мы, программисты, регулярно замеряем ВРЕМЯ исполнения нашего кода. Но практически никогда не замеряем ПАМЯТЬ. За исключением когда мы аллоцируем её слишком много, или когда происходят утечки (и то не всегда замечаем этого). Да и вообще в стандартной библиотеке большинства языков нет никаких инструментов для того чтобы это делать.

И вот я недавно задумался об этом и решил как-то начать замерять память, чтобы нарабатывать тут интуицию и находить инсайты по поводу того как оптимизировать код. (на эту мысль в том числе натолкнул кризис ОЗУ в мире 😅)

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

Второй вариант я придумал вчера пока мылся в душе. Надо сделать кастомный аллокатор, который пишет в счётчик данные о том сколько байтов аллоцировано и сколько освобождено. Никак не влияет на перфоманс.

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

Зато это можно очень надёжно использовать для других замеров: сколько каждый компонент производит аллокаций и какой поток памяти он аллоцирует и освобождает за единицу своего вычисления (просто какой-то временной памяти). Эти штуки вычисляются абсолютно надёжно и они могут что-то говорить про эффективность кода.

Ну и я быстренько накодил такое окно (см. картинку), которое показывает эти обе вещи. А ещё показывает сколько программа нааллоцировала в принципе. Пока это 35мб и вполне мало, хотя мне не нравится что простая сцена уже занимает столько памяти.

Глядя на окно я думал что моя softbody система вообще практически не производит аллокаций, за исключением начальной аллокации под все частицы итд. А оказывается там делается 4000 аллокаций/деаллокаций каждый кадр... Надо бы изучить что там такое происходит и оптимизировать, может быть это ускорит данный компонент.

А вообще меня смущает что я за свою карьеру программистом практически не видел грамотного опыта трекинга памяти, будь то количество аллокаций/деаллокаций внутри какой-то функции, или будь то тупо слежение за тем сколько какой-то объект занимает памяти в ОЗУ. Вот эта идея с аллокатором пришла мне в душе из космоса, ни в статье, ни в твиттере я ничего такого не видел раньше. И ни у меня, ни у моих знакомых нет никакой интуиции что сколько памяти занимает.

А вы хоть раз замеряли память своего кода, или количество аллокаций?
  • ❤ 60
  • 👍 15
  • 🔥 13
  • 🤔 2
  • ⚡ 1
  • 🥰 1
Post #929 5.23K
optozorax В Portal Lab появилась поддержка шейдеров. Мне это нужно для одного из следующих видео, где будет кое-что очень крутое. Последнюю неделю занимался тем что рефакторил Portal Lab и полностью поменял систему рисования. Теперь всё умеет рисоваться не только…
Симуляция жидкости с порталами и их искривлением гравитации

Изначально все частицы создаются с 0й скоростью, так что куда они летят полностью зависит от гравитационного поля.
  • 🔥 126
  • ❤ 16
  • 👍 10
  • 🤩 8
  • 😍 4
  • ❤‍🔥 2
  • 🥰 1
  • 💋 1
  • 🆒 1
Post #928 6.01K
Про самосилу и чёрные дыры.

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

Само-сила - это явление, когда гравитация тела создаёт силу, которая толкает это же тело, за счёт искривления пространства. У меня в порталах есть точка сингулярности на границах порталов, где угол в точке равен не 360 градусов, а все 720. И именно от этой точки создавалась отталкивающая само-сила, потому что она вела себя как точка с большой кривизной пространства. Её можно сгладить, чтобы она не была сингулярностью, и эффект будет оставаться примерно такой же.

И вот сегодня я задумался - а насколько реальна эта вещь? А то я всё думаю что мои портальчики - это лишь спекуляции и фиктивная физика, и никогда даже не задумывался о том чтобы это было применимо в реальности.

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

А вот гравитационная само-сила намного более сильна и наверное единственное место где её можно достоверно обнаружить - это при вращении массивных тел рядом с чёрной дырой. Даже в этом случае само-сила довольно слаба, но она оказывает измеримый эффект на тысячах и десятках тысяч оборотов.

И это как раз исследуют люди, которые занимаются лазерным интерферометром (это тот что зафиксировал гравитационные волны), который будет в космосе - LISA. Для LIGO эффект само-силы вроде слишком слабый чтобы всерьёз его учитывать.

Вот даже есть такое чтиво на эту тему: https://the-center-of-gravity.com/documents/333/1805.10385v2.pdf (я прочитал только абстракт)
  • 🔥 61
  • 🥰 28
  • ❤ 11
  • 👍 6
  • 👀 3
  • 💘 3
  • 🦄 3
  • ❤‍🔥 1
Post #920 6.77K
В качестве прокрастинации от монтажа видео я начал немного играться с path tracing'ом червоточин (!). И вот захотел сделать анимацию того как меняется фокусное расстояние камеры рядом с червоточиной, чтобы увидеть как бы она выглядела в реальности, когда мы своими глазами меняем фокусное расстояние. Такое 100% никто раньше не делал.

И вот для этого нужно ОЧЕНЬ много сэмплов, потому что очень много размытия из-за расфокуса. Поэтому я навайбкодил программу, которая берёт мой Portal Lab и рендерит эту анимацию в сырые float буферы каждого цвета, и в этих буферах аккумулирует цвета. И работает она так что она по кругу бегает по этим буферам и добавляет и добавляет сэмплов чтобы я мог её запускать много-много ночей подряд чтобы получать менее шумную картинку.

И вот я оставил эту программу работать в течении 20 часов (на моей 5080), пока скалолазался, гулял, спал. Но есть одна проблема...

Сегодня я решил посмотреть превью этих буферов и поставил их отрисовку в png. Смотрю на кадры, а они как будто все одни и те же, как будто фокус не меняется. Дождался пока сырые буферы отрисуются в png (это было долго), смотрю и ВСЕ кадры одинаковые, с одним и те же фокусом, анимации никакой нет, все эти 20 часов я рендерил ПЕРВЫЙ КАДР! ААААА!!

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

Ну ладно, чего уже добру пропадать, раз я рендерил ОДИН ГРЁБАНЫЙ КАДР целых 20 часов, давайте хоть проведу аналитику насколько количество сэмплов влияет на то как выглядит итоговый кадр. Объединю их все и построю графики.

For your information: когда рендеришь path tracing'ом, то главная операция что ты делаешь - это просто берёшь рандомный луч и пускаешь его и записываешь цвет. Поэтому чем больше рандомных лучей, тем лучше. Поэтому если все мои кадры использовали независимый рандом, то их можно объединить и получить универсальный супер-пупер классный кадр.

Значит я рендерил по 32 сэмпла каждый проход по всем 720 кадрам, и уже успело случиться 10 таких проходов, поэтому каждый кадр у меня имеет 320 сэмплов. Далее, когда я объединяю эти кадры, для аналитики, то шаг будет равен 320 сэмплов. Максимальное количество сэмплов - 223_200 😵‍💫

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

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

Я думаю остановлюсь где-то на 5к-10к сэмплов в своей анимации.

И ещё в комментариях приложу прикольные графики!
  • 🔥 59
  • 😁 9
  • 😱 7
  • 👍 4
  • ❤ 2
  • ❤‍🔥 2
  • 🥰 1
  • 🙏 1
  • 👀 1
  • 🆒 1
Older posts →

About this channel

How can I read @optozorax_dev without a Telegram account?
TGViewer shows the public web preview Telegram publishes for optozorax: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does optozorax have?
optozorax (@optozorax_dev) has 4.63K subscribers on Telegram, refreshed roughly every 30 minutes.
Does optozorax know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →