Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

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

Телеграм, ВКонтакте, Дзен, Макс — площадок становится все больше, а вот внимание аудитории по-прежнему ограничено. Что делать? Продвигать!

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

Подойдет для:

  • авторских и экспертных блогов

  • бизнеса

  • медиа и новостных каналов

  • мемных и развлекательных сообществ

Запускается просто: добавляете ссылку, пишете заголовок и краткое описание и выбираете географию для показов. А дальше о вашем канале узнают тысячи пользователей Пикабу!

Продвинуть канал

Документация со схемой для "Шкаф оперативной блокировки ШЭРА-1-ОБ-2001."

Черновики (1/10)

7 минут

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

За что роскомнадзор забанил OCCT тест?!

Вот уж не думал и не гадал, что ошибка загрузки данных на сервер бенчмарка OССT будет вызвана блокировокй роскомнадзора!
Чем этот тест не угодил тварям из РКН, там что, были скины с детской порунухой что ли?!
В общем, есть ли не забаненные аналогичные проги, хочу немного проц в разных режимах виндовса тестами погонять и посмотреть сравнительные данные по новым процам для понимания, пора ли 5900х отправлять на авито или еще походит

Интерактивная цифровая настолка по Аркхэму, туман и колоды контактов, часть 3

Серия Интерактивная цифровая настолка Ужасы Аркхэма

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

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

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

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

Самый первый туман работал по принципу классического скроллинга текстуры, который использовался еще в играх эпохи первой PlayStation. Грубо говоря как работают анимированные обои на скринсейвере. Координаты текстуры линейно смещались по вектору скорости в зависимости от времени, ну а время (скорость) тумана я настраивал произвольно для рандомизации:

Простой линейный вектор

Простой линейный вектор

Шейдер брал готовую статичную картинку шума и просто сдвигал сетку рендеринга. С точки зрения геометрии, здесь использовался один цветной прямоугольник (2 треугольника, 4 вершины). Это совсем , я бы сказал, что совершенно не критично для современных ресурсов процессора, разве что происходил постоянный Cache Miss при потере бесшовности, ну и тем более легко для видеокарты, но, чтобы минимизировать обрывы картинки при движении камеры, подложку под игровым миром приходилось делать физически огромной, либо оборачивать в ноду слоя параллакса. Я делал статичный размер около 3500x4500px и, конечно, это уже весомо влияло на производительность.

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

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

В общем, было вполне приемлемо, но пришло время двигаться дальше, прощай туман version 1.

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

Фрактальный броуновский шум с кубической интерполяцией Перлина:

Кубическая интерполяция Кена Перлина

Кубическая интерполяция Кена Перлина

И сам готовый шум после этого циклически закручивался сам в себя через так называемый Domain Warping (искажение области определения):

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

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

Что касается самой геометрии и прорисовки, то здесь стало еще проще, в объекте теперь использовалось только 2 треугольника. Еще я сразу добавил, точнее допили старую фичу - при подступе к районам городам в начале уменьшать туман на 80% (вернее увеличивать его прозрачность), а в центре района и вовсе убирать на 100%. Это заставило движок в начале рисовать нужные маски поверх районов в буфер, а затем уже накладывать генерирующийся шейдер на него.

Проблема оказалась также в намного большей ресурсозависимости, но не из-за методов построения геометрии и функций, а потому что движку приходилось по 60 раз отрисовывать циклы нескольких октав шума, тригонометрических формул, матриц поворота, ведь теперь мы всё делали на лету. Видеокарте не поплохело, но так делать не надо. Зато конечно текстурная нагрузка в плане тумана упало ровно в 0%.

Тут 10 шакалов из 10, но только такой пример остался в буфере - туман в какой-то момент просто превратился в непрозрачную разлитую ртуть. Сильное искажение, смешивание цветов и альфа канала, сетка сжалась в мелкие фрактальные части, которые давали засвет.

Тут 10 шакалов из 10, но только такой пример остался в буфере - туман в какой-то момент просто превратился в непрозрачную разлитую ртуть. Сильное искажение, смешивание цветов и альфа канала, сетка сжалась в мелкие фрактальные части, которые давали засвет.

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

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

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

Я взял тот же низкочастотный шум, увеличил его почти в десять тысяч раз, получил пушистые и большие облака тумана. Количество прорисовок снизилось в те же 10000 раз, высвободив ресурсы. Допилил поле ореолов для районов, теперь не просто работает простая радиальная маска, а все районы и улицы имеют свою маску прозрачности, отдают точные координаты своего положения на карте. Динамическое поле ореолов, чаще называемое полем знаковых расстояний (SDF - Signed Distance Field), - это математическая или текстурная карта, которая хранит информацию о кратчайшем расстоянии от каждой точки пространства до ближайшей границы какого-либо объекта или контура. Убраны все маски, буферы прорисовки и текстуры. Один объект, простейший черный прямоугольник 2900x2200 пикселей с парой вершин и треугольников, потребление полигонов минимально, а всё, что уходит из зоны видимости игровой камеры - полностью отсекается на уровне потребляемых ресурсов. Текстурный процессор также обрабатывает это легко, пропуская через себя запекаемый шейдер шума с включенным аппаратным сглаживанием и бесшовностью. Видеокарта также тянет узор из кэш памяти на аппаратнмо уровне.

Вот, что получилось. Плотность тумана и подступы к его к районам позже немного усилил.

Вот, что получилось. Плотность тумана и подступы к его к районам позже немного усилил.

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

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

На видео та текущая финальная версия, которая написана на данный момент. Разве что чуть докрутил параметры плотности тумана и сделал его подступы к районам поближе. А еще починил SDR/HDR при записи видео, так что теперь видите всё так, как и я вижу это у себя.

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

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

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

На этом пока всё. На неделе приступаю к проработкам фаз действия сыщиков и монстров.

Растем, пост для моих уже 4 подписчиков! Оставляйте комментарии, чтобы хоть было понятно в каком формате продолжать, много или мало информации за раз, нужны ли эти формулы и объяснения. Спасибо!

Показать полностью 10 1
Политика

Ответ на пост «Гражданин Узбекистана в футболке с символикой ВСУ пришел получать патент на работу в подразделение МВД по вопросам миграции»5

То есть это говно, зная, что мы воюем с ВСУ и понимая, как у нас "любят" мигрантов, спецом припёрся в футболке вражины и подтвердил, что он намеренно надел её.

Больше того являясь потенциальным сторонником ВСУ и возможным диверсантов, в перспективе, его не выдворили из страны вместе с его стадом, а всего лишь аштрафовали.

Это говно просто смеётся над нашим государством, в которое он приехал, потому, что нахуй в своём он никому не нужен.

Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества