Всеволод Плетнев


Гео и язык канала: Весь мир, Русский
Категория: Технологии


IT НИГИЛИЗМ | Ламповое болото цифрового пиздеца, где код встречается с экзистенциальным ужасом, а здравый смысл идёт нахуй

Связанные каналы  |  Похожие каналы

Гео и язык канала
Весь мир, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Видео недоступно для предпросмотра
Смотреть в Telegram
На этой ноте я с рендерами на CPU заканчиваю, доотлаживался


Видео недоступно для предпросмотра
Смотреть в Telegram
Да, SDF поражает своими возможностями. Уверен, что на пару с генетическими алгоритмами и инверсной кинематикой получатся какие-то совершенно невообразимые варианты

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


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

В общем, жду идеи/предложения)


Видео недоступно для предпросмотра
Смотреть в Telegram
Я заебу вокселями, но это очень красиво, особенно с элементами разрушаемости


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


Видео недоступно для предпросмотра
Смотреть в Telegram
До сих пор не верю, что мой последний пост в тви про трассировку лучей собрал больше трех тысяч лайков, принес более 400 подписчиков и просто был добавлен в закладки более тысячи раз

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

1. Видимый мир

В данном на видео демо все, что мы рисуем, состоит из двух вещей: воксели и sdf (гладкие формы, шары, скругленные тела и не только). Мир гибридный — кубики и гладкие фигуры живут вместе в одной сетке. И на первом шаге мы строим эту сетку, определяя в какой клетке какие воксели или фигуры находятся. Важно заметить, что одна фигура может занимать несколько клеток, а несколько фигур могут занять одну клетку


2. Пирамида

Чтобы не проверять каждую клетку по отдельности (их миллионы), мы строим над сеткой пирамиду. Делим мир на более крупные ячейки и для каждой запоминаем всего одно: есть внутри хоть что-нибудь или там пусто. Потом объединяем ячейки по четыре в более крупные, и так уровень за уровнем. Получается "карта заполненности", где пустые области отваливаются целыми кусками, а в заполненных ячейках могут содержаться воксели и/или фигуры

3. Лучи

Теперь пускаем луч. Луч идет по пирамиде сверху вниз: попал в крупную пустую ячейку — перепрыгнул ее целиком одним шагом, не тратя время. Попал в заполненную — спускаемся на уровень мельче и смотрим внимательнее. Дошли до вокселей — включаем ray casting. Дошли до гладкой фигуры — включаем ray marching, пока не приблизимся на минимальную необходимую дистанцию или пролетим мимо. Так луч быстро проскакивает пустоту и быстро находит воксель или фигуру, в которую вероятнее всего упрется

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

В демо на видео мне удалось в 60fps отрисовывать 1 073 741 824 цветных вокселя и около 100 простых sdf без использования GPU на обычном canvas 2d context (javascript)


Кароче, приходите в 21.15 по мск на канал Разрабы

Я и Фил @ranzhin будем пиздеть про то, как три года дружить, много чего хотеть и нихуя не сделать


Видео недоступно для предпросмотра
Смотреть в Telegram
Мне удалось нащупать сочетание разных методов бросания лучей, которое рисует в реальном времени воксели, объемные гауссианы и сложные гладкие поверхности (SDF) — все сразу, в одном кадре, с отражениями, преломлениями и освещением

Скорее всего, я не открыл Америку. Но картинка получается непривычная: объемный дым, который отбрасывает тень и сам освещается, лиминальные пространства, фракталы, довольно странные существа

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

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


Я вообще-то плачу за слейва-блоуджобера, а не за обидчивую девочку. Треш блять


Купил себе невесомые, простейшие и почти уебищные наушники от moondrop

И это оказалось охуенно. Я забыл уже, что наушники могут не давить на голову, не давить на сосуды, от них могут не болеть уши, что про них можно вообще забыть

Да, звук у них не супер, но стоят они копейки и для работы/ютуба подходят отлично

А ведь когда-то это было вполне себе нормой...

Да, в них нет шумодава/изоляции, беспровода, всякой hi-fi хуеты и прочей нанотехнологичной маркетинговой дресни. Но как разница, если они удобны и ими хочется пользоваться?


Около 2-3 месяцев работал над довольно странным, но интересным сочетанием технологий в рамках одного прототипа

Я попытался срастить самописный mesh vpn на базе wireguard, dns для поддержки доменов в рамках этого vpn, OCID провайдер в каждой ноде, чтобы любой пользователь vpn'а мог получить доступ к ресурсам в сети по факту своего участия в ней (хостинги кода, документации и прочие вещи), звонилку для p2p или групповых звонков + некий аналог слалака/ноушена с каналами, через которые раздаются доступы ко всем перечисленным выше ресурсам

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

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

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

А тут пожалуйста: поставил клиент на мак, настроил ноду на малине с гитей, дал доступ другу и оно просто работает. Абсолютно бесплатно

Но "федеративность" в базовом устройстве все же подвела, это оказалось не слишком удобно для централизованной настройки и поддержки, хотя идей на бумаге была красивой. Скорее всего я начну в скором времени пилить версию 2.0 с полноценным SaaS и подписками, где можно будет все это сконфигурировать один раз в одном месте

Надеюсь, что это принесет огромную пользу отдельным командам и небольшим компаниям на практике)


Вполне себе неплохой кейс для отладки ввод клавиш


Видео недоступно для предпросмотра
Смотреть в Telegram
А получилось-то по итогу заебись. Адаптировал захват экрана/инпута под win+amd и steamos, в локальной сети или через 5G можно даже в шутер простенький поиграть, ведь задержка минимальная при стабильных 60 FPS

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

При этом никаких уебанских подписок, тормозов через промежуточные сервера, сложных установок и настроек

Я просто запускаю команду на хосте и открываю ссылку в любом браузере — готово, стрим есть, ввод работает, а плавность и отклик дают в рот всяким тимвюверам и парсекам

Особенно круто это выглядит на мобильных и планшетах, хотя над вводом еще работать и работать


Попробовал тут на выходных запилить себе тулзу для удаленного управления рабочим столом и терминалом через WebRTC. Получилось очень неплохо: гибкие настройки захвата видео, трансляции, захват отдельных приложений, трансляция звука, передача нажатия клавиш и управление курсором. В общем, самое то для вайбкодинга/видео/простых игр и так далее, надобно только под мобилу грамотно адаптировать и поддержать линь в форточкой


Деление мейлсру на ноль я одобряю. Эта компания уничтожает все, до чего может дотянуться, ее существование просто неприемлемо


Я как-то шабашил месяц в конторе, где клод ревьювил код, ставил оценку и не апрувил MR, пока ты не удовлетворишь все его больные хотелки. Задачи там тож ставились ИИшкой. А через месяц меня уволили за некомпетентность, ибо клод конечно знает больше, глючит лучше и вообще профессионал своего дела, а я только правками одного MR'а мозг заниматься неделю. Большего маразма я в разработке не видал наверное


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

В результате все отлично работает без каких-либо VPN'ов


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

700 0 1 19 21

Чую, что теперь anisotropic и openai будут конкурировать по уровню тупости новых моделей


Не стоит иронизировать над вайбкодерами

Показано 20 последних публикаций.