COMMAND ENCODER (Barkar Ivan)
163 subscribers
168 photos
72 videos
17 files
108 links
Cool shading, nice ball moment
Download Telegram
3450623.3464662.pdf
2.7 MB
Техарт киберпространств в Cyberpunk.
5
This media is not supported in your browser
VIEW IN TELEGRAM
Чем-то привлек этот пост-процесс из The Long dark. Немного так обогащает стилизованную картинку. Думал, что-то сложное, но, кажется, все очень просто: из обесцвеченного кадра вычитаем размытый обесцвеченный кадр, прибавляем аккуратно к оригиналу.
(в комменте граф сабстанса)
Подумываю применить у себя с размытием от скорости.

UPD: обесцвечивать, в принципе, ни к чему
🆒4
This media is not supported in your browser
VIEW IN TELEGRAM
Очередной раз захотел радиального размытия в Substance Designer для тестов всяких пост-процесс гипотез. Психанул, наговнякал на Pixel processor.
Может кому-то тоже нужен иногда или хотите изучить Pixel processor, и while loop в нем (та еще веселуха)
sbs - буквально исходник
sbar - кидаете в граф и пользуетесь

файлы в первом комментарии
🔥10
This media is not supported in your browser
VIEW IN TELEGRAM
в презентации по Портал 2 увидел некую технику Surface-embedded sprite, основанную на том, что мы поворачиваем uv в сторону камеры. А у меня про это незакрытый гештатль уже 4 года. В общем вот.

Файлы опубликовал в unity_cg (обязательно вступайте, если еще не)
🔥13
COMMAND ENCODER (Barkar Ivan)
Проблема сжатия вершин оказывается достаточно актуальной, и даже в индустрии AAA-разработки к её решению подходят самыми разными способами. Unity, в свою очередь, предлагает собственные инструменты для этой задачи – подробнее о них можно узнать в официальной…
Как всегда, пока это очень глубокое R'n'D и тест, и совсем не продакшен реди. Это пример квантайза мешей. Скорее всего, наиболее любопытным будет упаковка нормалей и тангента в кватернион, что может пригодится и в деферред. Будут мысли - пишите. Найдете ошибку, или как можно сделать лучше - так же в себе не держите.

Позиции сломаются на объектах размером меньше 1, копит заметную ошибку на мешах размерах больше 50 - меш становится немного больше. Пока не решил.

(файлики в комментах)
🔥2
Media is too big
VIEW IN TELEGRAM
К предыдущему посту.
Другой подход к квантованию с масштабированием. Мелкие мешки работают прекрасно, под большие подбираем множитель. С благодарностью @alexmtq (https://t.me/madcsharp)

https://github.com/BarkarIvan/Unity_mesh_quantization_example

на гифке оптимизировання мешка размером в 50 единиц сравнивается с оригиналом.
2🔥1🤯1
Я уже говорил, но.
Применение NICE-фильтра (на основе имплементации от Valve) при генерации мип-мап даёт ощутимый прирост качества по сравнению с окном Кайзера в Unity.

На реальном проекте (зависит, конечно, от него) разница в качестве текстур очень заметна.

Минусы?
- реализация в лоб очень долгая ) текстуры 1024 обрабатывает минуты. Но это решаемо.

https://developer.valvesoftware.com/wiki/NICE_filtering

UPD: если реализовать кайзер с регулируемыми настройками (хотя бы бета), то можно добиться результатов не хуже
4
Forwarded from Constantine Galkin
К слову, тут пару месяцев назад пробегал диалог про сжатие вершин, в том числе нормалей, там я упомянул презу из дума, вот готовый рабочий код в 3 байта + битмаска ужаты нормаль, тангент и TBN знак.
https://gist.github.com/wiseConst/fdedf4bf9461f2c6a4dc003aadb331d3
This media is not supported in your browser
VIEW IN TELEGRAM
Новости генерации кастомных мип-мап.

слева Юнити, справа - мое

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

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

Оставлю так, и пущу в дело, там посмотрим.
Вывод в том, что было бы здорово иметь пару (да даже одну) настроек кайзера, чтобы регулировать резкость текстуры.
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
А чего вы без таких полярных координат для сабстанс дизайнера сидите? Делал себе для трещин.


(файлы в первом комментарии)
Домашнее задание: сделать color версию
🔥72
Forwarded from OWLD (Olga Fedotova)
Полезный доклад с GDC от Ани Булавиной из CD PR об устройстве игровых городов с практически готовыми советами по тому, как игровой город делать.

Основные тезисы с моими комментариями:

🔸 Пространство в игре не должно быть реалистичным, оно должно быть достоверным.
Это та самая тема, по которой я хочу пройтись в своей части 2 тома Архитектуры виртуальных миров.

🔸 Город это упорядоченная структура.
От себя добавлю, что это будет верно для любого пространства, организованного человеком. Снижайте хаос на ваших уровнях.

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

🔸 Основные параметры вашего города - размеры, пропорции и степень детализации - зависят от скорости перемещения и геймплея.
Dog Town в Phantom Liberty потому такой шумный на мой взгляд, что разработчики полагали, что он будет преодолеваться игроком не только на машине, но и пешком, и потому увеличили детализацию. Типа а давайте запушим игроков играть иначе. Получили то, что получили.

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

По Аниному докладу можно набросать примерно вот такой пайплайн работы с игровым городом:

1. Определяем размеры города, исходя из геймплея
2. Определяем количество районов и их опознавательные лендмарки
3. Собираем референсы, обращаем внимание на структурные рефы
4. Продумываем элевацию (мне кажется, что наиболее корректно начать думать об этом где-то на этом этапе)
5. Прокладываем главные улицы через весь город
6. Помним про чередование пространств улица-площадь
7. Закладываем навигацию через размер улиц и лендмарки

❗️ Ну а самый главный вывод, как по мне, - вашего В2 уровня английского вполне достаточно, чтобы выступать с докладом на GDC. Так что перестаньте тормозить себя знанием языка.

#video #gamecities #Cyberpunk2077
🔥7
оч люблю виртуальные города, а тут такой канал
👍1
Forwarded from Artful Artform (Dasha Nasonova)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
❤️Steam Deck + 💖Render Doc

На Steam Deck утилита renderdoccmd уже предустановлена (либо автоматически устанавливается при подключении SteamOS Devkit Client). На момент написания используется версия 1.30 — для захвата необходимо использовать RenderDoc той же версии на ПК.

Начинаем захват:

В интерфейсе SteamOS Devkit Client активируйте опцию "RenderDoc captures enabled".

Запустите на Steam Deck игру, загруженную через Devkit. При запуске сразу появится оверлей RenderDoc.

На Deck откройте свойства текущего Wi-Fi-соединения и определите IP-адрес устройства.

На ПК в RenderDoc выберите File → Attach to Running Device, введите IP-адрес Deck'а. В списке доступных приложений появится ваша игра. Подключитесь к ней и начните захват.

На моей практике захват сработал для сборки из Unity под Linux.

P.S. в комментах

UPD: удобнее все же делать это с рабочего стола Линукса, после закрытия приложения в рендердоке сразу открывается капчур, без доп танцев с реплаями.
👍2
Конечно, вот вариант, который создаст о вас впечатление, как о самом сеньерном сеньере+.


Последние месяц-два вечера проходят за изучением UECS и прочих аспектов DOTS. И, честно говоря, мне нравится. Сейчас основной фокус — на построении автоматизированного пайплайна между Unity и Houdini: экспорт, импорт и сборка сцен для стриминга. Unity Entities предусмотрены механизмы для этого — например, поддержка секций сцен.

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

Уже работает на Steam Deck :3

Полной автоматизации не хочется — это путь в никуда. Но на уровне грейбокса и основной геометрии, с итерацией результатов — вполне. То есть: террейн, дороги, автоматическое размещение декора по заданной логике — всё это должно собираться само. А дальше — руками, но с удобными и хорошо подогнанными под задачи инструментами. В итоге должно получиться грамотное сочетание автоматизации и ручной доработки с обменом данными. Посмотрим, куда выведет.
❤‍🔥6