Григорий Дядиченко – Telegram
Григорий Дядиченко
2.82K subscribers
395 photos
160 videos
7 files
1.2K links
Разработчик игр, интерактивных стендов и интерактивной рекламы. Эксперт в области интерактивов и XR.

100+ проектов за 5 лет.

По вопросам сотрудничества писать: @it_bizdev
Реклама в канале: https://vk.cc/cNhGLE
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Какая нормаль в вершине конуса?

Я
сейчас решил заморочиться посидеть и спроектировать VFX тулсет. Набор простых утилит, которые позволяют генерить всякие примитивы для VFX (сферы, полусферы, торы, конусы, сплайны), шумы и градиенты. Смешивать текстуры по каналам. Чтобы выкинуть в опенсорс потом тулзу для всех простую и удобную. А то моделить это всё долго, да и не все умеют. Проще параметры покрутить)

И столкнулся с тем, о чём не задумывался. Мало того, что конус это по сути частный случай цилиндра (но это логично как раз) Видимо его надо и делать цилиндром. Но тут прям косёрн оптимизации. Так как как для корректного pbr света нужны корректные нормали, а это значит конус прям цилиндр и в его вершине будет на самом деле ни одна, а множество вершин, чтобы свет правильно ложился на треугольники. Но вот если вам нормали не нужны, то достаточно одной вершины в вершине конуса. Думаю, стоит ли на уровне тулсета закладывать такие оптимизации или это уже оверинжиниринг, так как все возможные случаи всё равно покрыть трудно) В общем так "анонсируем" для подписчиков канала, что скоро появится прикольная штука :)

P.S. Меня просто задолбало моделить полусферу, четверть цилинда и писать отдельный шейдер с параметром куллинга в нужную сторону, если моделлер сделал их не в ту сторону. Да и такие вещи весить ничего не будут в отличии от моделей, если сделать скриптами
9👍3😁2
Больше чатов богам чатов

Завёл группу по XR разработке на Unity в телеграм. Если интересуетесь XR — присоединяйтесь
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Эффект матрицы

Всегда интересно искать на просторах гитхаба что-то прикольное. Нашёл вот интересный трипланарный шейдер с эффектом как в матрице :) Выглядит довольно круто, подобное очень интересно разбирать "а как сделано" :) https://github.com/IRCSS/MatrixVFX
🔥13👍4
Unity + React

Я открыл для себя очень прикольный подход для веб проектов. Связка Unity + React. Это очень удобно и решает проблему отрисовки шрифтов в WebGL.

Собственно пока я не доделал (так сказать как всегда WIP для канальчика) https://noxatra.ru/demos/webgl-runner-game/

Но уже можно посмотреть в репозиториях:

https://github.com/Nox7atra/unity-react-container-example — пример интеграции в виде веб проекта
https://github.com/Nox7atra/simple-web-runner-game — проект простенькой игры раннера

Надо ещё сделать:

1. Пример "отлетающего текста"
2. Управление для мобилок (оно запускается с мобилки, но там не пофикшен скролл и нет управления)
3. Загрузчик и прочие мелочи
4. Сделать какой-то базовый дизайн интерфейса :)
5. И самое важное статью полноценную + документацию

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

Плюс в репозитории можно посмотреть настроенный проект с такой простенькой 3д игрой весом в 5.5 мегабайт :)

Ну ещё кому-то может пригодится базовый тимплейт раннера с подходами правильного построения, пуллинга и т.п. И то что пользователь стоит на месте, а движется трасса. Я просто за свою карьеру раннеров 20 написал, так что это я уже каждый раз пишу с закрытыми глазами :)
👍4
Детективная игра с телеграм ботом

Интересно. Может кто-то уже такое делал. Подумал что достаточно забавно к какой-нить детективной игре прикрутить бота с мессенджере. Типа подсказки и какие-то улики тебе передаются в сообщениях там. С одной стороны «зачем игрока выводить из игры, это же можно сделать прям в игре». А с другой прикольно. Лежит рядом с тобой телефон и кто-то пишет тебе прям на него)

Понятное дело стоит делать такие механики опциональными, но интересно насколько это влияет на восприятие) Типа «прошёл квестовый триггер» и тебе вместо попапа в игре приходит сюжетное голосовое сообщение в боте :) Думаю можно сделать атмосферно :)

Хотя со всем этим надо экспериментировать, а то получится как Tom Clancy: EndWar :) Я возлагал такие большие надежды в детстве на голосовое управление в стратегии, а в реальности это оказалось не так прикольно. Хотя может потому что оно работало так себе :)
🔥3👍1
Unity WebGL + React


Итак, как я вчера и обещал. Репозитории доделаны, статья дописана. Превью конечно слабоватое получилось, но за два дня ударной работы по статье у меня иссякли силы и фантазия. Ну и на дизайн игры сил тоже не хватило. Но всё что я хотел я в примере доработал и в статье постарался расписать не сильно углубляясь в контекст конкретных фреймворков

https://habr.com/ru/post/693534/
👍6🔥3
Продолжаем работу над тулкитом

Всё-таки я решил, что будем делать сразу верно для реалтайма. Чтобы не было каких-то урезанных оптимизированных версий. Это тонкие настройки, которые вообще не нужны среднему разработчику. Поэтому в вершине конуса куча вершин на самом деле. Зато свет теперь ложится корректно. Плюс свет не единственная причина. Без Дополнительных вершин нельзя грамотно положить uv. На видео корректные uv, а на скрине некорректные

Плюс я отделил генератор от мешрендерера, и сделал отдельный скрипт для проброса результата генерации в рендер, чтобы была возможность юзать GPU Instancing в VFX. Мало ли какой-то процедурный объект надо будет размножить :)

Возможность убрать нормали или UV, чтобы они не шли на гпу в качестве вертексных параметров — поддержу везде. Думаю это будет удобно
🔥4👍2
Как-то странно тг выложило картинку поэтому перевыложу
Хах, я теперь старожил хабра :)
🔥13👍3
Тестируйте апдейты (особенно оптимизационные)

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

1. Ничего не меняем перед релизом

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

2. Обновив настройки, версию, юнити — прогнать тест

Все кто работают в студиях или работал с крупными проектами знают. Что нельзя обновлять версию Unity просто так. Сначала нужно сохранить репозиторий, потом помолиться, потом запустить и удивиться если ничего не сломалось. Тоже самое с настройками которые аффектят весь проект. Сохранились. Создали ветку. Внесли. Проверили что всё работает. Вмержили

3. Работа маленькими изменениями

Зачем нужно часто коммитить? Многие пишут-пишут и коммитят раз в неделю. И это плохо. Так как нет проще способа найти баг и исправить — как пройтись бинарным поиском по коммитам "где не сломано" (особенно сложный, допустим появившийся не из-за кода, а из-за изменения версии либы в функционал который тестится редко) Пройдясь и найдя на каком коммите сломалось, если коммит — это изменение в паре скриптов и ещё какая-то фигня, всегда легко найти "а что изменилось")

А то я увидел коммент и был в шоке. Судя по тексту человек на проде без теста применил советы из статьи на хабре. Боец без страха и упрёка, смельчак каких поискать. Но и при этом вывод сделал неправильный "не трогайте настройку". А не, да настройка полезная, но если её поставить то может сломаться Х. Высокая степень оптимизации на то и высокая, что ей надо пользоваться аккуратно :)
👍14
Argo Lite

Пока ковырял алгоритмы укладки графов и искал разные материалы для статьи по 3д укладкам нашёл прикольный опенсорсный инструмент для визуализации графов в браузере https://github.com/poloclub/argo-graph-lite Выглядит достаточно прикольно, хотя немного и сложноват. Я не нашёл какие-то разные схемы укладки и отображение, но как простенькая тулза с несколькими прикольными фишками выглядит интересно :)
👍3
Мануал для тех артистов от Unity

Сама книжка тут https://resources.unity.com/games/unity-for-technical-artists-key-toolsets-and-workflows. А сказать хочется вот о чём) Круто что юнити начали делать мануалы с обзором функций для разных задач. Допустим из мануала по 2д я был не в курсе о ряде функций которые подвезли. Давно с 2д не работал. Хотя меня удивляет, что это называют иногда прям книгами. Это не книги — это мануалы :)
👍4
Dark Asset

Прикольный пост о применении Unity в кинематографе. Так сказать рассказ от VFX артиста :) Такие штуки с "виртуальным продакшеном" и трекингом камеры для съёмки + совмещением с изображением с хромакея я разок делал. Технологически это сейчас довольно просто. В целом забавно как игровой движок который я ещё помню воот таким с 4-ой версии стал применяться в самых разных задачах :) Хотя понятны преимущества реалтайма для продакшенов. Когда в реальном времени можно прикинуть, как будет выглядеть кадр без недели рендера или не подгонять кадр под то, что "было снято"

https://blog.unity.com/entertainment/dark-asset-vfx-previs-to-final-pixel
👍2
Как подготовится к собеседованию :)

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

https://www.youtube.com/watch?v=5bId3N7QZec
😁6
This media is not supported in your browser
VIEW IN TELEGRAM
Красивый эффект «появления» мира

Обожаю технически простые штуки, но сделанные со вкусом :) По сути трипланарный dissolve с подсветкой edge на маске, но выглядит очень эффектно https://80.lv/articles/real-time-space-transformation-in-unity/
🔥131👍1
Что почитать по рендеру?

Таки я собрался с силами и написал статью с полезным, на мой взгляд, списком литературы чтобы разобраться или прокачаться в реалтаймовой компьютерной графике. Одну книжку я недавно увидел как раз в чате https://news.1rj.ru/str/unity_cg и она мне понравилась, если рассматривать её "для начинающих". В общем мало ли кто-то искал что почитать. Надо будет собрать такое же по ИИ и прочим разделам тяжкого труда Unity разработчика :)

P.S. Ну и превьюшка теперь мне нравится, не просто картиночка, а "со смыслом" :)
👍9🔥6
Unity всё ещё работают над интеграцией .Net CoreCLR JIT runtime

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

Поговорим немного про рантаймы Unity. По сути сейчас их два. IL2CPP и Mono. С первым ничего не случится. Посмотрим какие платформы будут поддерживать Core CLR, но точно на него переедут десктопные платформы. А в чём разница?

1. Моно мёртв

Конечно Unity поддерживает свою версию моно по сути, так что это не совсем тот моно. Но CoreCLR — это будущее .Net которое активно развивает Microsoft. Он кросплатформенный, он в х2-х10 раз быстрее чем Mono и оперативно получает все последние фичи .Net. Он лучше, чем .Net Framework по множеству причин и т.п.

2. А что с IL2CPP?

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

3. Span

Это есть в статье, но Span<T> супер полезная штука. Это возможность безопасно работать с неуправляемой памятью (в отличии от того же unsafe) что бывает достаточно полезно и открывает возможности для множества безопасных оптимизаций

Так же улучшенный GC и много чего ещё. В общем работа над интеграцией CoreCLR судя по всему идёт и это круто)
👍11