onekey shading что это

Onekey shading что это

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что этопод сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).

Некоторое время работала без нареканий, после попытки подключить к другому роутеру работать перестала.
Возврат на прежний роутер результатов не дает, ip и на авто и прописывал руками результата нет.
Что самое интересное пингуется, по потока ни на одну прогу не идет.
Кнопочки reboot нет.
Мож кто сталкивался, подскажите.

В сравнении с Xiaomi Yi Smart Wifi Cam Device:
Плюсы:
Более гибкая регулировка положения камеры (шаровая опора)
Правильная работа часов (нормальная настройка часовых поясов)
Есть отправка e-mail
Есть ночное видение
Есть Ethernet
Возможна простая настройка через web интерфейс при подключении через ethernet
Простая ручная регулировка объектива (крутил, работает)
Довольно навороченный, но вполне понятный web интерфейс со множеством настроек
Три светодиодных индикатора состояния камеры расположенных сзади, что не привлекает лишнего внимания.

Есть http с паролем (возможно скачивать файлы с помощью wget)
rtsp с паролем (соответственно, возможность работы с ivideon server)
onvif (не пробовал)
Регулировка чувствительности датчика движения позволяет включать запись даже при движении на улице человека (в моем случае съемка через окно первого этажа)
Расписание записи (пробую)

Минусы:
Устаревший процессор hi3510
БОльшие габариты
Угол обзора меньше (не на много)
Картинка менее четкая (оптика от Sony лучше, или что-то ещё)
При фокусировке (если не ошибаюсь) слышен щелчок, видимо механический светофильтр.
Не обнаружил работающего telnet или ssh, но они и не нужны, так как все остальное работает «из коробки».

Обзор есть тут
Еще один обзор аналогичного оборудования тут.

Выводы:
Очень хорошая, многофункциональная модель за свои деньги.

В общем не знал в какую тему написать, камера Suneyes SP-HM01WP вайфай, купил на алиэкспрес, на моём стареньком самсунге андроид программа вылетает осле 2х секунд открытия, а к компу никак не могу подключить, программа скачанная с сайта производителя видит камеру но картинки нет, может кто подскажет что можно сделать что бы видео появилось?

Источник

Onekey shading что это

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что этопод сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).

Некоторое время работала без нареканий, после попытки подключить к другому роутеру работать перестала.
Возврат на прежний роутер результатов не дает, ip и на авто и прописывал руками результата нет.
Что самое интересное пингуется, по потока ни на одну прогу не идет.
Кнопочки reboot нет.
Мож кто сталкивался, подскажите.

В сравнении с Xiaomi Yi Smart Wifi Cam Device:
Плюсы:
Более гибкая регулировка положения камеры (шаровая опора)
Правильная работа часов (нормальная настройка часовых поясов)
Есть отправка e-mail
Есть ночное видение
Есть Ethernet
Возможна простая настройка через web интерфейс при подключении через ethernet
Простая ручная регулировка объектива (крутил, работает)
Довольно навороченный, но вполне понятный web интерфейс со множеством настроек
Три светодиодных индикатора состояния камеры расположенных сзади, что не привлекает лишнего внимания.

Есть http с паролем (возможно скачивать файлы с помощью wget)
rtsp с паролем (соответственно, возможность работы с ivideon server)
onvif (не пробовал)
Регулировка чувствительности датчика движения позволяет включать запись даже при движении на улице человека (в моем случае съемка через окно первого этажа)
Расписание записи (пробую)

Минусы:
Устаревший процессор hi3510
БОльшие габариты
Угол обзора меньше (не на много)
Картинка менее четкая (оптика от Sony лучше, или что-то ещё)
При фокусировке (если не ошибаюсь) слышен щелчок, видимо механический светофильтр.
Не обнаружил работающего telnet или ssh, но они и не нужны, так как все остальное работает «из коробки».

Обзор есть тут
Еще один обзор аналогичного оборудования тут.

Выводы:
Очень хорошая, многофункциональная модель за свои деньги.

В общем не знал в какую тему написать, камера Suneyes SP-HM01WP вайфай, купил на алиэкспрес, на моём стареньком самсунге андроид программа вылетает осле 2х секунд открытия, а к компу никак не могу подключить, программа скачанная с сайта производителя видит камеру но картинки нет, может кто подскажет что можно сделать что бы видео появилось?

Источник

Как мы научились подключать китайские камеры за 1000р к облаку. Без регистраторов и SMS (и сэкономили миллионы долларов)

Наверное, ни для кого не секрет, что в последнее время облачные сервисы видеонаблюдения набирают популярность. И понятно почему так происходит, видео — это «тяжелый» контент, для хранения которого необходима инфраструктура и большие объемы дискового хранилища. Использование локальной системы видеонаблюдения требует средств на эксплуатацию и поддержку, как в случае организации, использующей сотни камер наблюдения, так и в случае индивидуального пользователя с несколькими камерами.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

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

Для этого необходимо, чтобы на камере был установлен модуль ПО работающий с облаком. Однако, если говорить про дешевые камеры, то у них очень ограничены аппаратные ресурсы, которые почти на 100% занимает родная прошивка вендора камеры, а ресурсов необходимых для облачного плагина — нет. Этой проблеме разработчики из ivideon посвятили статью, в которой говорится почему они не могут установить плагин на дешевые камеры. Как итог, минимальная цена камеры — 5000р ($80 долларов) и миллионы потраченных денег на оборудование.

Мы эту проблему успешно решили. Если интересно как — велком под кат

Немного истории

В 2016 году мы стартовали разработку платформы облачного видеонаблюдения для Ростелекома.

В части ПО камер на первом этапе пошли «стандартным» для таких задач путем: разработали свой плагин, который устанавливается в штатную прошивку камеры вендора и работает с нашим облаком. Однако, стоит отметить, что при проектировании мы использовали наиболее легковесные и эффективные решения (например, plain C реализацию protobuf, libev, mbedtls и полностью отказались от удобных, но тяжелых библиотек типа boost)

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

Это означает, что для каждого вендора камер необходимо индивидуально разрабатывать объемный слой интеграционного ПО. И на момент старта разработки целесообразно работать только с 1-ним вендором, что бы сосредоточить усилия команды на разработке логики работы с облаком.

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

На камерах Hikvision мы и запустили наш первый пилотный проект облачное видеонаблюдение Видеокомфорт.

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

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

Поэтому, я принял решение копать глубже — сделать полностью свою прошивку для камер любых вендоров. Этот подход существенно снижает требования к аппаратным ресурсам камеры — т.к. слой работы с облаком на порядок более эффективно интегрирован с video application, и в прошивке нет лишнего не используемого жирка.

И что важно, при работе с камерой на низком уровне есть возможность использовать аппаратный AES, который шифрует данные, не создавая дополнительной нагрузки на маломощный CPU.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В тот момент у нас не было вообще ничего. Вообще ничего.

Практически все вендоры не были готовы работать с нами на таком низком уровне. Информации о схемотехнике и компонентах — нет, официальных SDK чипсетов и документации сенсоров — нет.
Технической поддержки так же нет.

Ответы на все вопросы приходилось получать реверс инжинирингом — методом проб и ошибок. Но мы справились.

Первыми моделями камер, на которых мы набивали шишки стали камеры Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link и несколько сверх дешевых безымянных китайских камер.

Техника

Камеры на чипсете Hisilicon 3518E. Аппаратные характеристики камер такие:

Xiaomi Yi AntsNoname
SoCHisilicon 3518EHisilicon 3518E
RAM64MB64MB
FLASH16MB8MB
WiFimt7601/bcm43143
Sensorov9732 (720p)ov9712 (720p)
Ethernet+
MicroSD++
Microphone++
Speaker++
IRLed++
IRCut++

Сейчас поддерживаем чипсеты Hisilicon 3516/3518, а так же Ambarella S2L/S2LM. Количество моделей камер — десятки.

Состав прошивки

uboot

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

Скрипт загрузки камеры достаточно тривиален:

Первое время, когда мы работали без поддержки вендоров, мы просто копировали этот блок из оригинальной прошивки камеры.

Ядро linux и rootfs

На камерах используется ядро Linux, входящее в состав SDK чипа, обычно это не самые свежие ядра из ветки 3.x, поэтому часто приходится сталкиваться с тем, что драйвера дополнительного оборудования не совместимы с используемым ядром, и нам приходится их бэк-портировать под ядро камеры.

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

Video application

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

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

В традиционных решениях ‘прошивка вендора + облачный плагин’, которые не могут работать на дешевом железе, видео внутри камеры передается по протоколу RTSP — а это огромный оверхед: копирование и передача данных через socket, лишние syscall-ы.

Мы в этом месте используем механизм shared memory — видео не копируется и не пересылается через socket между компонентами ПО камеры, тем самым оптимально и бережно используя скромные аппаратные возможности камеры.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Подсистема обновления

Предмет отдельной гордости — подсистема fault-tolerant онлайн обновления прошивки.

Поясню проблематику. Обновление прошивки — это технически не атомарная операция и в случае если посередине обновления произойдет сбой питания, то на флеш памяти будет часть «недозаписанной» новой прошивки. Если не предпринять специальных мер, то камера после этого станет «кирпичом», который нужно нести в сервисный центр.

Мы справились и с этой проблемой. Даже если камеру выключить в момент обновления, она автоматически и без участия пользователя скачает прошивку из облака и восстановит работу.

Разберем технику подробнее:

Наиболее уязвимый момент — перезапись раздела с ядром Linux и корневой файловой системой. В случае, если один из этих компонентов окажется поврежденным, то камера вообще не загрузиться дальше начального загрузчика uboot, который не умеет скачивать прошивку из облака.

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

Годное решение — однако, ядро с rootfs занимает около 3.5MB и для постоянной резервной копии нужно выделить 3.5MB. На самых дешевых камерах просто нет столько свободного места под backup ядра.

Поэтому для backup ядра во время обновления прошивки используем application партицию.
А для выбора нужной партиции с ядром как раз и используется две команды bootm в uboot — в начале пытаемся загрузить основное ядро и если оно повреждено, то резервное.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

CI/CD система сборки и деплоя прошивок

Для сборки прошивок мы используем gitlab CI, в котором автоматически собираются прошивки под все поддерживаемые модели камер, после сборки прошивки автоматически деплоятся на сервис обновления ПО камер.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Из сервиса обновления ПО прошивки доставляются на тестовые камеры наших QA, а по завершению всех этапов тестирования и на камеры пользователей.

Информационная безопасность

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

Поэтому, весь не используемый функционал в нашей прошивке отключен, все tcp/udp порты закрыты и при обновлении прошивки проверяется цифровая подпись ПО.

И кроме этого, прошивка проходит регулярное тестирование в лаборатории информационной безопасности.

Заключение

Сейчас наша прошивка активно используется в проектах по видеонаблюдению. Пожалуй самый масштабный из них — трансляция голосования в день выборов Президента Российской Федерации.
В проекте было задействовано более 70 тысяч камер с нашей прошивкой, которые были установлены по избирательным участкам нашей страны.

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

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

Источник

Onekey shading что это

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что этопод сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).

Некоторое время работала без нареканий, после попытки подключить к другому роутеру работать перестала.
Возврат на прежний роутер результатов не дает, ip и на авто и прописывал руками результата нет.
Что самое интересное пингуется, по потока ни на одну прогу не идет.
Кнопочки reboot нет.
Мож кто сталкивался, подскажите.

В сравнении с Xiaomi Yi Smart Wifi Cam Device:
Плюсы:
Более гибкая регулировка положения камеры (шаровая опора)
Правильная работа часов (нормальная настройка часовых поясов)
Есть отправка e-mail
Есть ночное видение
Есть Ethernet
Возможна простая настройка через web интерфейс при подключении через ethernet
Простая ручная регулировка объектива (крутил, работает)
Довольно навороченный, но вполне понятный web интерфейс со множеством настроек
Три светодиодных индикатора состояния камеры расположенных сзади, что не привлекает лишнего внимания.

Есть http с паролем (возможно скачивать файлы с помощью wget)
rtsp с паролем (соответственно, возможность работы с ivideon server)
onvif (не пробовал)
Регулировка чувствительности датчика движения позволяет включать запись даже при движении на улице человека (в моем случае съемка через окно первого этажа)
Расписание записи (пробую)

Минусы:
Устаревший процессор hi3510
БОльшие габариты
Угол обзора меньше (не на много)
Картинка менее четкая (оптика от Sony лучше, или что-то ещё)
При фокусировке (если не ошибаюсь) слышен щелчок, видимо механический светофильтр.
Не обнаружил работающего telnet или ssh, но они и не нужны, так как все остальное работает «из коробки».

Обзор есть тут
Еще один обзор аналогичного оборудования тут.

Выводы:
Очень хорошая, многофункциональная модель за свои деньги.

В общем не знал в какую тему написать, камера Suneyes SP-HM01WP вайфай, купил на алиэкспрес, на моём стареньком самсунге андроид программа вылетает осле 2х секунд открытия, а к компу никак не могу подключить, программа скачанная с сайта производителя видит камеру но картинки нет, может кто подскажет что можно сделать что бы видео появилось?

Источник

Туториал по Unreal Engine: Cel Shading

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Благодаря физически точному рендерингу в Unreal Engine 4 удобно разрабатывать реалистичные игры. Модель рендеринга имитирует взаимодействие света с материалами, что приводит к созданию реалистичной картинки. Однако если вы хотите разработать игру со стилизованным внешним видом, то вам придётся исследовать другие техники.

Один из способов создания стилизации — использование cel shading (также известного как toon-шейдинг). Эта техника подражает затенению, обычно используемому в мультфильмах и аниме. Примеры её использования можно увидеть в таких играх, как Jet Set Radio, The Legend of Zelda: The Wind Waker и Gravity Rush.

В этом туториале вы научитесь следующему:

Примечание: В этом туториале подразумевается, что вы уже знакомы с основами Unreal Engine. Если вы новичок в Unreal Engine, то вам стоит изучить сначала туториал из десяти частей Unreal Engine для начинающих.

Приступаем к работе

Скачайте заготовку проекта и распакуйте её. Перейдите в папку проекта и откройте CelShader.uproject. Вы увидите следующую сцену:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Это персонаж, к которому мы будем применять cel shading. Прежде чем приступать, нужно разобраться, что же такое cel shading.

Что такое Cel Shading?

Cel shading — это процесс рендеринга с помощью нескольких полос цвета, а не непрерывного градиента.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Ниже представлен пример использования cel shading в The Legend of Zelda: Breath of the Wild. Заметьте, что cel shading реализован только для персонажа, а фон остался обычным.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

Часто ошибочно считается, что cel shading применён, если у объектов есть контуры. Примером этого может служить Borderlands. Хотя эта игра имеет стилизованный внешний вид, на самом деле в ней нет cel shading. Это можно увидеть на изображении ниже. Заметьте, что в расцветке персонажа не используются полосы цвета.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Контуры не являются cel shading, но их часто используют совместно. Благодаря этому картинка становится похожей на нарисованную краской или тушью. Такой приём часто используется в играх с аниме-стилистикой, таких как Guilty Gear Xrd и Dragon Ball FighterZ.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В следующем разделе мы узнаем, как реализовать cel shading.

Способ реализации Cel Shading

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Теперь, когда вы знаете, что такое cel-шейдер и как он работает, настало время его создать.

Создание Cel-шейдера

В этом туториале cel shading будет эффектом постобработки. Постобработка (Post processing) позволяет изменять изображение после того, как движок закончит его рендеринг. Постобработку обычно используют для таких эффектов, как глубина резкости, motion blur и bloom.

Для создания собственного эффекта постобработки нам нужно воспользоваться материалом постобработки (post process material). Перейдите в папку Materials и создайте новый Material. Переименуйте его в PP_CelShader и откройте.

Чтобы преобразовать материал в материал постобработки, нужно изменить его домен (domain). Перейдите в панель Details и измените Material Domain на Post Process.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Первый шаг в создании cel-шейдера — вычисление освещённости каждого пикселя. Мы назовём это буфером освещения (lighting buffer).

Вычисление буфера освещения

Когда Unreal рендерит изображение на экран, то сохраняет проходы в буферы. Для вычисления буфера освещения нам нужно будет получить доступ к двум таким буферам:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Для доступа к этим буферам нужно использовать нод SceneTexture. Создайте его, выберите и перейдите в панель Details. Чтобы получить доступ к буферу Post Process Input, измените Scene Texture Id на PostProcessInput0.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Для доступа к Diffuse Color создайте ещё один нод SceneTexture. Измените его Scene Texture Id на DiffuseColor.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Буфер освещения должен содержать только значения в градациях серого (описывающие степени освещённости пикселей). Это значит, что нам не потребуется информация о цвете из обоих буферов. Чтобы отбросить цвета, соедините выход Color обоих нодов SceneTexture с Desaturation. Это полностью обесцветит оба буфера.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Для вычисления буфера освещения просто разделим SceneTexture:PostProcessInput0 на SceneTexture:DiffuseColor. Порядок здесь важен!

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Затем используем Clamp, чтобы значения оставались в интервале от 0 до 1. Это упростит создание порогов, потому что мы будем знать возможные значения.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Вот визуализация буфера освещения:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Как вы видите, освещённые области ближе к белому, а неосвещённые — к чёрному.

Затем мы используем буфер освещения для создания порога.

Создание порога

В нашем cel-шейдере любой пиксель со значением больше 0,5 будет использовать обычный диффузный цвет. Пиксели со значениями меньше 0,5 будут использовать диффузный цвет половинной яркости.

Для начала создадим нод If. Он позволит нам сравнивать два значения. В зависимости от результатов сравнения мы сможем указывать разные выходы.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Далее соединим Clamp со входом A. Затем создадим Constant со значением 0.5 и соединим её со входом B.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Примечание: для изменения порога можно менять значение входа B.

Чтобы получить цвета, создадим SceneTexture и зададим для его Scene Texture Id значение Diffuse Color. Затем умножим Color на 0.5, чтобы получить диффузный цвет половинной яркости.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

И наконец, соединим всё следующим образом:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Использование материалов постобработки

Чтобы использовать материалы постобработки, нам нужно создать Post Process Volume. Он обычно используется для управления такими эффектами постобработки, как баланс белого, насыщенность и контрастность.

Нажмите на Apply и вернитесь в основной редактор. Для создания Post Process Volume перейдите в панель Modes и выберите категорию Volumes. Затем перетащите Post Process Volume во Viewport, чтобы создать его.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Теперь нам нужно сказать Post Process Volume, чтобы он использовал cel-шейдер. Выбрав Post Process Volume, перейдите в панель Details. Затем найдите Rendering Features\Post Process Materials и нажмите на значок +. Так вы добавите в массив новый элемент.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Затем нажмите на раскрывающийся список Choose и выберите Asset Reference.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Это позволит выбрать материал. Нажмите на раскрывающийся список None и выберите PP_CelShader.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

По умолчанию Post Process Volume воздействует только тогда, когда мы находимся внутри. Однако в нашем случае нужно, чтобы он влиял на весь мир. Для этого прокрутите до Post Process Volume Settings и включите Infinite Extent (Unbound).

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Теперь, когда cel-шейдер применён ко всей игре, мы увидим следующее:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

«Постойте-ка, это не похоже на тот cel-шейдер, который вы показывали раньше!»

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

Применение Cel Shading перед тональной компрессией

Прежде чем показать изображение игроку, Unreal выполняет процесс, известный как «тональная компрессия» (tonemapping). Одна из целей тональной компрессии — сделать изображение более естественным. Она берёт входной цвет, а затем использует кривую, чтобы сдвинуть его в новое значение.

Вот два изображения, до и после тональной компрессии:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

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

Откройте PP_CelShader и убедитесь, что ничего не выбрано. Затем зайдите в панель и найдите раздел Post Process Material. Задайте Blendable Location значение Before Tonemapping.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Нажмите на Apply, а затем вернитесь в основной редактор. Цвета теперь выглядят гораздо лучше!

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

В следующем разделе мы научимся тому, как применять cel shading только к отдельным объектам.

Изолирование Cel Shader

Чтобы изолировать эффекты постобработки, нам нужно использовать функцию под названием Custom Depth. Как и Post Process Input с Diffuse Color, это тоже буфер, который можно использовать в материалах постобработки.

Прежде чем понять, что такое Custom Depth, вам нужно разобраться с буфером Scene Depth. Scene Depth хранит отдалённость каждого пикселя от камеры. Вот как выглядит визуализация Scene Depth:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Сравнивая Scene Depth с Custom Depth, мы можем изолировать объекты. Если Scene Depth меньше, чем Custom Depth, то мы используем обычное изображение. Если Scene Depth больше Custom Depth, то используется изображение с cel-шейдингом.

Первый шаг — рендеринг викинга в Custom Depth.

Использование Custom Depth

Перейдите в World Outliner и выберите SK_Viking. Затем перейдите в панель Details и найдите раздел Rendering. Затем включите Render CustomDepth Pass.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Далее нам нужно выполнить сравнение глубин. Откройте PP_CelShader и создайте следующую схему:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Примечание: ноды Mask ( R ) являются масками компонентов (Component Mask). Они позволяют преобразовывать многоканальные данные в скалярные значения. Наложить маску на Scene Depth и Custom Depth нам нужно потому, что нод If для входов A и B принимает только скалярные значения.

Затем соедините выход сети cel shading с A > B. Наконец, соедините выход только что созданного If с Emissive Color.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Теперь cel shading будет применяться только к мешам, отрендеренным в Custom Depth.

Нажмите на Apply, а затем вернитесь в основной редактор. Вы увидите, что cel shading теперь выполняется только для викинга.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Сel-шейдер работает замечательно, но он довольно прост. Что, если нам понадобится большее количество полос? Что, если мы захотим создать более плавные переходы между полосами? Всё это можно реализовать с помощью таблиц поиска (lookup tables) (LUT).

Что такое «таблица поиска»?

В детстве мы учились тому, что такое умножение. Однако юный мозг не всегда мог выполнять такие вычисления. Поэтому вместо расчётов вы могли пользоваться таблицей умножения для «поиска» ответов.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

По сути, это и есть LUT. Это массив значений (обычно предварительно вычисленных), к которым можно получить доступ с помощью входных данных. В случае таблицы умножения входными данными являлись множитель и множимое.

В контексте нашего cel-шейдера LUT — это текстура с неким градиентом. Вот четыре примера того, как может выглядеть LUT:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

Прежде чем использовать LUT, нужно изменить некоторые из её параметров текстуры.

Изменение параметров LUT

Перейдите в папку Textures и откройте T_Lut_01. Вот, как выглядит LUT:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

Параметр sRGB полезен для текстур, описывающих внешний вид. Однако текстуры наподобие карт нормалей и LUT содержат данные, предназначенные для математических вычислений. Поэтому Unreal должен считать их значения уже верными. Если отключить sRGB, то Unreal не будет выполнять преобразование в линейный цвет.

Для этого снимите флажок sRGB. Этот параметр находится в разделе Texture.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

Для отключения тайлинга измените значение X-axis Tiling Method на Clamp. Тоже самое сделайте для Y-axis Tiling Method.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

И на этом мы закончили с параметрами. Теперь нам нужно использовать LUT в материале постобработки.

Использование LUT

Закройте T_Lut_01 и откройте PP_CelShader. Сначала удалите выделенные ноды:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Затем создайте Texture Sample и измените его Texture на T_Lut_01. Эта таблица LUT будет создавать три полосы с плавным переходом.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

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

Чтобы реализовать это, соедините Clamp с UVs в Texture Sample.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Это работает, потому что значения буфера освещения и координаты текстуры находятся в интервале от 0 и 1. Например, если пиксель из буфера освещения равен 0,5, то LUT подаст на выход значение пикселя из середины текстуры.

Далее нам нужно умножить диффузный цвет на LUT. Для этого воссоздайте следующую схему:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Мы используем Append для преобразования вывода Texture Sample’s в четырёхканальный вектор. Это нужно нам, потому что мы не можем умножать трёхканальный вектор на четырёхканальный (SceneTexture).

Наконец, соединим всё следующим образом:

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Теперь вместо умножения диффузного цвета на константу мы умножаем его на значение из LUT. Так мы контролируем количество полос цвета и их переходы (зависящие от LUT). Выводимое значение LUT определяется буфером освещения.

Нажмите на Apply, а затем закройте PP_CelShader. Теперь затенение будет иметь три полосы с более плавными переходами между полосами.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Ниже представлено сравнение того, как могут выглядеть различные LUT. Эти LUT тоже добавлены в проект.

onekey shading что это. Смотреть фото onekey shading что это. Смотреть картинку onekey shading что это. Картинка про onekey shading что это. Фото onekey shading что это

Куда двигаться дальше?

Готовый проект можно скачать отсюда.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *