Чи є білий найкращим базовим кольором для початку, коли плануєте затінювати спрайти в Unity?


10

Я шукаю прототипувати гру в Unity, яка буде складатися з суцільних квадратних спрайтів / плиток. Я думаю, що я можу представляти різні типи предметів з різними кольорами для кожної з плиток у грі.

Я вважаю, що я можу імпортувати один квадратний спрайт і відтінити його належним чином в Unity, на відміну від імпортних квадратів багатьох різних кольорів.

Мій досвід із коригуванням відтінку та насиченості у Photoshop показує, що білий колір - це непростий колір, який можна змінити, оскільки білі речі часто залишаються білими. Моє тестування в Unity показує, що я можу змінити "колір" спрайта на будь-що, крім білого, і спрайт, здавалося б, затінений належним чином, незважаючи на те, що я міг би подумати, враховуючи свій досвід Photoshop.

Оскільки білі об’єкти, здається, набувають відповідного відтінку кольорів при зміні в Unity, моя кишка говорить мені, що це найкращий базовий колір для початку, це означає, що я можу імпортувати єдиний білий квадратний спрайт і просто налаштувати колір для представлення різних об'єктів і об'єктні стани.

Чи справді білий спрайт є найкращим спрайтом кольорів і чому щось подібне працює в Unity на відміну від регулювання відтінку та насиченості у Photoshop?

введіть тут опис зображення


Спочатку визначте «найкраще».
Krythic

Відповіді:


13

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

Unity застосовує Multiplyрежим змішування до текстури спрайту та кольору.

Тип кольору Unity варіюється від 0 до 1 включно.

Колір. Білий дорівнює (1, 1, 1, 1).

Знаючи, що 1часом щось є само собою.

Якщо масштаб сірого textureзмішується з Colorполем Sprite Renderer , кожен піксель є самим собою. Зміна цього поля просто помножить кожне рівномірне значення відтінків сірого на кожен компонент кольору.

Тонування деякого спрайта


Ви можете грати в режимі "Множення суміші" в улюбленому редакторі зображень, як Photoshop або GIMP.

Налаштування Photoshop


4

Sprites-Additive.shader - GitHub Gist

Кольори Unity мають 4 поплавкові значення, характерні для багатьох кольорових форматів RGBA, що відповідають окремим відсотковим значенням кольорів Червоний, Зелений, Синій та канал прозорості Альфа.

Також, як було сказано вище, типовий "Відтінок", застосований Unity, є мультиплікативним шейдером, Photoshop називає цей ефект "Помножити", і процес буквально множить значення кольорів у пікселях вашого спрайту із вибраним значенням кольору.

Проблема в цьому полягає в тому, що мультиплікативний кольоровий математичний шейдер ЗАВЖДИ видасть однаковий відтінок (якщо ви "помножите" на білий) або більш темний колір, якщо ви помножите на що-небудь інше. Я натрапив на ситуацію, коли мені хотілося точно протилежного ефекту в ситуації ковального типу. Нагрітий метал не повинен бути помножений на жовтий, щоб отримати більш темний відтінок:

мультиплікативний шейдер від Yellow

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

добавка шейдер

Я надам переписуваний Sprites-Additive.shader, якщо хтось зацікавиться.

Ось хороша довідка щодо кольорової термінології та режимів: http://www.northlite.net/ps/blend.htm


Користувач, який не має достатньої репутації для коментарів, виявив зацікавленість бачити шейдерний код для цього ефекту. У вас ще є доступ до спільного доступу?
DMGregory

1
Гей, у мене зараз його немає в наявності, але я перекопаю його та отримаю посилання, як тільки зможу. Сьогодні вночі, якщо можливо.
Джо

2
Я повертаю це назад, я знайшов це відносно легко і додав його до Gist на моєму GitHub. Єдина ОСНОВНА різниця між добавкою та мультиплікативним шейдером полягає у прозорості. У шейдері для добавки я встановив 10% -ве обмеження прозорості для підтримки відносної альфа-пікселів із низькими значеннями альфа. Вам не доведеться турбуватися про подібні речі на мультиплікативному шейдері через природу математики.
Джо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.