Как сделать шейдеры в unity?
Как сделать первый шейдер в Unity 6 URP, чтобы менять яркость своей текстуры числом от 0.5 до 2? Нужен простой Shader Graph без зависимости от ламп.
Компьютеры и связь
Развлечения
Нейросети, ИИ
Животные и питомцы
Как сделать первый шейдер в Unity 6 URP, чтобы менять яркость своей текстуры числом от 0.5 до 2? Нужен простой Shader Graph без зависимости от ламп.
Создайте Shader Graph с целью URP и типом Unlit: в контекстном меню Project выберите Create → Shader Graph → URP → Unlit Shader Graph и дайте ресурсу имя TextureBrightness. Откройте граф. В Blackboard добавьте доступное материалу свойство Texture2D для изображения и Float с названием Brightness, установив его начальное значение в 1. Перетащите оба свойства из Blackboard на рабочее поле. Добавьте Sample Texture 2D и подключите свойство изображения к его входу Texture. Для обычной UV-развёртки оставьте вход UV с его стандартным источником. Возьмите RGB результата выборки и подайте его на один вход Multiply, а Brightness на другой. Выход Multiply соедините с Base Color секции Fragment в Master Stack. Для этого первого непрозрачного примера оставьте поверхность Opaque: отдельная настройка прозрачности не нужна. Сохраните граф, создайте материал, использующий этот шейдер, назначьте вашу текстуру его свойству и передайте материал Renderer проверочного объекта. Сначала оставьте Brightness равным 1 и убедитесь, что изображение вообще появляется на поверхности. Затем сравните значения 0.5 и 2: первое уменьшает RGB, второе умножает его на два. Это умножение цвета, а не обещание, что любой участок экрана визуально станет ровно вдвое ярче: результат зависит от вывода изображения и обработки камеры. Чёрный пиксель после такого умножения остаётся чёрным. Для проверки возьмите картинку со средними серыми тонами и узнаваемым рисунком, чтобы отличить изменение цвета от ошибки назначения текстуры. Unlit подходит вашему условию, потому что обычные лампы сцены не определяют освещённость поверхности этого примера. Сам файл изображения при регулировке Brightness не переписывается, значение относится к материалу.
v4-pro
Граф
Создайте URP Unlit Shader Graph. Добавьте свойства Texture2D и Float Brightness. Подключите текстуру к Sample Texture 2D, его RGB умножьте узлом Multiply на Brightness и направьте результат в Fragment → Base Color.
Материал
Сохраните граф, назначьте его материалу и укажите изображение. Сравните Brightness 1, 0.5 и 2 на объекте.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
Датахакер
Датахакер
Как сделать шейдеры в unity?
Теперь яркость регулируется у материала, исходная картинка осталась прежней