Czy biały to najlepszy kolor bazowy na początek, gdy planujesz przyciemnić duszki w Unity?

10

Zastanawiam się nad prototypowaniem gry w Unity, która składałaby się z kwadratowych duszków / płytek. Myślę, że mogę reprezentować różne typy obiektów o różnych kolorach dla każdego z kafelków w grze.

Myślę, że mogę zaimportować pojedynczy kwadratowy duszek i odpowiednio go odcień w Unity, w przeciwieństwie do importowanych kwadratów o wielu różnych kolorach.

Moje doświadczenia z dostosowaniem odcienia i nasycenia w Photoshopie pokazują, że biel nie jest łatwa do zmiany, ponieważ białe rzeczy często pozostają białe. Moje testy w Unity pokazują, że mogę zmienić „kolor” duszka na cokolwiek innego niż biały, a duszek wydaje się być odpowiednio zacieniony, pomimo tego, co bym pomyślał, biorąc pod uwagę moje doświadczenie z Photoshopem.

Ponieważ białe obiekty wydają się przyjmować odpowiednie cieniowanie po zmianie w Unity, mój żołądek mówi mi, że jest to najlepszy kolor podstawowy na początek, co oznacza, że ​​mogę zaimportować pojedynczy biały kwadratowy duszek i po prostu dopasować kolor, aby reprezentował różne obiekty i stany obiektów.

Czy biały duszek jest właściwie najlepszym duchem na początek i dlaczego coś takiego działa w Unity, a nie dostosowuje odcień i nasycenie w Photoshopie?

wprowadź opis zdjęcia tutaj

SpartanDonut
źródło
Najpierw zdefiniuj „najlepszy”.
Krythic,

Odpowiedzi:

13

Biały jest najlepszym kolorem podstawowym dla prawdziwej reprezentacji. Również utrzymywanie skala szarości duszka może ułatwić dostosowanie drużyn itp.

Unity stosuje Multiplytryb mieszania do tekstury i koloru duszka.

Kolor koloru Unity wynosi od 0 do 1 włącznie.

Kolor. Biały jest równy (1, 1, 1, 1).

Wiedząc, że 1czasy wszystko jest sobą.

Jeśli skala szarości texturejest mieszana z Colorpolem renderowania sprite , każdy piksel jest sam. Zmiana tego pola po prostu pomnoży każdą jednolitą wartość skali szarości przez każdy składnik koloru.

Barwienie duszka


Możesz grać w trybie mieszania Multiply w swoim ulubionym edytorze obrazów, takim jak Photoshop lub GIMP.

Konfiguracja programu Photoshop

MLM
źródło
4

Sprites-Additive.shader - GitHub Gist

Kolory Unity mają 4 wartości zmiennoprzecinkowe typowe dla wielu formatów kolorów RGBA, odpowiadające poszczególnym procentowym wartościom kolorów: czerwony, zielony, niebieski i kanał przezroczystości alfa.

Jak wspomniano powyżej, domyślny „Odcień” stosowany przez Unity to multiplikator cieniujący Photoshop nazywa ten efekt „Pomnóż”, a proces dosłownie zwielokrotnia wartości kolorów w pikselach twojego duszka z wybraną wartością koloru.

Problem polega na tym, że multiplikatywny moduł cieniujący matematyki ZAWSZE wytwarza ten sam odcień (jeśli „pomnożysz” przez biały) lub ciemniejszy kolor, jeśli pomnożysz przez cokolwiek innego. Natknąłem się na sytuację, w której chciałem dokładnie odwrotnego efektu w sytuacji typu kowalskiego. Podgrzanego metalu nie należy pomnożyć przez żółty, aby uzyskać ciemniejszy odcień:

multiplikatywny moduł cieniujący firmy Yellow

Zamiast tego przepisałem domyślny multiplikatywny moduł cieniujący Unity na addytywny. Wyniki były bardziej zgodne z tym, czego szukałem:

moduł cieniujący

Jeśli ktoś jest zainteresowany, przedstawię treść przepisanego Sprites-Additive.shader .

Oto dobre odniesienie do terminologii i trybów kolorów: http://www.northlite.net/ps/blend.htm

Joe
źródło
Użytkownik bez wystarczającej reputacji, aby móc komentować, wyraził zainteresowanie wyświetleniem kodu modułu cieniującego dla tego efektu. Czy nadal możesz go udostępniać?
DMGregory
1
Hej, nie mam go teraz łatwo dostępnego, ale wykopię go i jak najszybciej zdobędę link. Dzisiaj, jeśli to możliwe.
Joe,
2
Cofam się, znalazłem to stosunkowo łatwo i dodałem do Gist na moim GitHubie. Jedną ZNACZĄCĄ różnicą między addytywnym i multiplikatywnym shaderem jest przejrzystość. W dodatkowym module cieniującym ustawiłem 10% odcięcia przezroczystości, aby utrzymać względną alfa pikseli o niskich wartościach alfa. Nie musisz się martwić o tego typu rzeczy w multiplikatorze cieniującym ze względu na naturę tej matematyki.
Joe