COMMAND ENCODER (Barkar Ivan)
163 subscribers
168 photos
72 videos
17 files
108 links
Cool shading, nice ball moment
Download Telegram
это мы забираем
почему понедельник расскажу в следующих сериях
This media is not supported in your browser
VIEW IN TELEGRAM
Балуюсь с генерацией мип-мап.
Задел такой: всегда с теплотой вспоминал особою четкость в визуале Half life 2. А @alexmtq подсказал, в прошлых постах, что дело в алгоритме, которым даунсемплят текстуры для мипов.
Никогда вообще не рассматривал генерацию мипов как какую-то возможность 🤔 ) а зря

за результат пока не отвечаю, может оказаться лишь результатом ошибки )

https://imgsli.com/MzQyMDA3
https://imgsli.com/MzQyMDA4
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Media is too big
VIEW IN TELEGRAM
Анимечники диковинную технику придумали, рисовать сдфку для затенения и не мучится.
🔥6👻1🆒1
Стало интересно сделать LI-SSAO для Юнити
Сделал репозиторию для изучения его устройства, в репозитории так же гудини-файл, в котором я готовил данные точек для семплирования и генератор 4х4 текстуры поворотов.
Дальше нужно побороть ореолы и добавить размытие. Но уже можно изучать-твикать.
Заметите ошибки - не держите в себе, но прежде чем указать - похвалите.
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Проблема сжатия вершин оказывается достаточно актуальной, и даже в индустрии AAA-разработки к её решению подходят самыми разными способами. Unity, в свою очередь, предлагает собственные инструменты для этой задачи – подробнее о них можно узнать в официальной документации.
К сожалению, не более чем переход на половинную точность.

На скриншоте представлен эксперимент по максимальному сжатию позиций вплоть до SNorm (xyz в относительных координатах по максимальной оси баунда, w отвечает за масштаб). В моем случае, точность не страдает до определенного размера моделей (где-то больше 50 единиц). И само искажение исключительно по масштабу (модель становится совсем немного больше)
Позиции вынесены в отдельный стрим.
Канал нормалей представлен в форме qTangent — это кватернион, выдуманный в Crytek, содержащий как нормали, так и тангент. UV-координаты, в свою очередь, просто хранятся в формате half (я не предполагаю текстур больше 1024)

Хотя сжатие UV и нормалей в целом не мешает работе в редакторе, Unity ожидает позиции во float3 для множества систем, включая физику, запекание и другие важные процессы. Из-за этого подобная компрессия не позволит полноценно работать с этими механизмами в редакторе. Поэтому наилучший вариант – выполнять сжатие на этапе сборки (build time), учитывая, что в шейдере нужна логика распаковки, конечно (конвертацию из snorm16 в half/float выполнит vertex fetch)

в комментах будут ссылки по теме, что как и зачем
Спасибо @alexmtq 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5
This media is not supported in your browser
VIEW IN TELEGRAM
GDC SIGGRAPH жди меня! 😎
нормали и тангент в octahedral в SNorm8x4
а на знак тангента я помножил скейл позиции))) (слева)

вот это я умненький, класс
Please open Telegram to view this post
VIEW IN TELEGRAM
6
This media is not supported in your browser
VIEW IN TELEGRAM
#gamedev #техарт #unity

Сегодня будет статья про Contrast Ratio и читаемость элементов (чтобы не было белого на черном и серого на сером)

WCAG 2.1 requires a contrast ratio of at least 3:1 for graphics and user interface components (such as form input borders). WCAG Level AAA requires a contrast ratio of at least 7:1 for normal text and 4.5:1 for large text.

👉 https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html

Что это вообще такое?
CR это такой показатель, который позволяет взять цвет фона и цвет текста или иконки, сравнить их и понять достаточный ли контраст? Есть куча калькуляторов Contrast Ratio, которые легко гуглятся:
👉 https://www.siegemedia.com/contrast-ratio
👉 https://webaim.org/resources/contrastchecker/
👉 https://coolors.co/contrast-checker/112a46-acc8e5
👉 https://contrast-ratio.org/

Минимальный контраст при котором нормально читается мелкий текст, крупный текст и иконки определён стандартом. Сильно задирать его вверх тоже не стоит — глаза устанут. Поэтому в IDE например используют тему Solarized, а не белое на черном/черное на белом.

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

Как это использовать в юнити?
Мы для тестирования написали постпроцессинг шейдер, в котором задаём два цвета фона (пипеткой) и считаем минимальный контраст остальных элементов относительно этих двух цветов. Видео прилагаю, чтоб было понятнее. Скрин рандомный из инета был взят для тестов.
Два порога: всё что с контрастом меньше BGT считается фоном и красится черным. Остальное красится синим если контраст выше требуемого CR и красным если ниже. Очень наглядно.

Помимо этого бывают ещё разные виды контраста, например, хроматический. Но о них как-нибудь отдельно поговорим.
3👍2
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