Czy uzupełniające się cienie mają sens w grach?

33

Zgodnie z teorią kolorów , cienie działają lepiej, jeśli nie używają czystej czerni lub szarości, ale zamiast tego używają koloru, który jest komplementarny z kolorem obiektu rzucającego ten cień.

To znaczy, jeśli masz czerwone jabłko, powinieneś użyć ciemnozielonego cienia; dla żółtego banana, ciemnofioletowy cień.

uzupełniające się przykłady cieni

Ale w wielu grach nie zawsze można przewidzieć, w jakim tle lub otoczeniu pojawi się cień, i może nie być luksusu posiadania dynamicznych kolorów cienia. Czy w takich przypadkach nadal warto stosować uzupełniające się cienie, czy akceptowalna jest neutralna czerń lub szarość?

congusbongus
źródło
Czy masz na myśli 2D czy 3D?
Kromster mówi o wsparciu Moniki
@KromStern 2D, ale ponieważ mogę tylko myśleć o implikacjach technicznych - zadaję pytanie projektowe - jestem ciekawy, jaką to ma różnicę, o której myśleliście.
congusbongus
Nie, nie mam na myśli planu. Jeśli jest to 2D, łatwiej jest przetestować w Photoshopie, rzucając kilka duszków z półprzezroczystymi cieniami.
Kromster mówi o wsparciu Moniki
Nawet jeśli było to możliwe, czy jest warte złożoności (kodu i środowiska wykonawczego)? Czy wystarczy użyć czarnego cienia (który jest szybki / tani w stosunku do cienia uzupełniającego)?
ashes999
Jeśli grasz w grę 2D, prawdopodobnie masz cień jako kolejny duszek (lub nawet część oryginalnego duszka), prawda? W takim przypadku prawdopodobnie nie ma dużej różnicy między posiadaniem czarnego cienia z domieszką alfa, a cieniem z domieszką alfa z domieszką alfa. Ale oczywiście musisz spróbować.
Luaan

Odpowiedzi:

43

Dla mnie to nie ma żadnego sensu. Ta teoria jest prawdopodobnie tylko artystycznym wyczuciem kompensacji balansu bieli, którą robi oko, i błędnie daje nam wrażenie przesuniętych odcieni w cieniach. Cień to po prostu brak światła z rozważanego źródła światła. Istnieją inne źródła światła często w realistycznym świecie, oto ich kolor, który pojawia się na swoim miejscu. Na przykład niebieski, często w warunkach czystego nieba. Z tą teorią, do której się odwołujesz, błędnie wynika, że ​​jest to absolutna prawda, bez zrozumienia dlaczego i w jakich warunkach. Cienie w oświetleniu wnętrz nie są oczywiście niebieskie.

Podczas gdy „lokalny kolor” teorii, do której się odwołujesz, jest nie mniej niż lokalny GI i krwawienie kolorów. Ten objęty zazwyczaj przez RSM i podobne. (LPV w lepszym stopniu).

Moja odpowiedź jest jednoznaczna, nie ma sensu w grach. Jeśli masz realistyczny renderer, to wystarczy. Zwłaszcza jeśli posiada GI w czasie rzeczywistym (śledzenie stożka SVO, LPV, RSM ..) lub GI w kolorze jasnej mapy (preferowany jest fizycznie i oczywiście cała poprawność gamma rurociągu), lub / i IBL.

Jeśli chodzi o względy artystyczne, najnowszy punkt „kolory uzupełniające” może mieć znaczenie w grach, jeśli chcesz czegoś, co nazywamy „stylizowanym rendererem” lub renderowaniem nierealistycznym. Aby zwiększyć „dramat” lub dążyć do stylu kreskówkowego lub akwarelowego; to pozwoli ci nadać grze wyjątkowy charakter. Ale powtarzam, z fizycznego punktu widzenia nie ma sensu odejść od tego, co powiedziałem w moim pierwszym zdaniu: to musi być jakieś naturalne odczucie artystów w ich pozycji obserwatora przyrody, wynikające z kompensacji balansu bieli.

v.oddou
źródło
13
Twoim głównym celem wydaje się być to, że cienie uzupełniające nienaturalistyczne . Ale nie ma powodu, aby gry (lub inne renderowane grafiki) były naturalistyczne: np. Niektóre silniki nadają obiektom wyraźne kontury kreskówek . Więc nie wydaje się szalone, aby uzyskać uzupełniające się cienie lub inne efekty estetyczne zgodnie z tymi liniami - chociaż to, jak wyglądałyby szczegóły i czy warto byłoby poświęcić czas i wysiłek, z pewnością nie jest jasne.
PLL
15
@PLL To dobra uwaga. Oznaczałoby to jednak, że próbujesz zbudować rendering stylistyczny zbliżony do pewnego rodzaju stylu malarskiego - w takim przypadku nie byłoby sensu zadawać pytania PO - albo próbujesz to przybliżyć, i w tym w tym przypadku jedynym pytaniem jest, czy jesteś w stanie to zrobić, czy dążysz do jakiegoś realizmu, w którym to przypadku ważne jest, aby zrozumieć, że w rzeczywistości nie jest to realistyczne - tylko estetyczne (i oczywiście bardzo subiektywne).
Luaan
@Luaan: Oczywiście zadawanie pytania miało sens dla OP, w przeciwnym razie nie zadałby go. W każdym razie było to bardzo interesujące pytanie, które zostało ocenione 27 razy i wyróżnione 7 razy.
HelloGoodbye,
1
@HelloGoodbye Źle zrozumiałeś mój komentarz. Powiedziałem, że jeśli OP chce realistycznego renderowania, nie musi się tym przejmować, ponieważ nie jest to realistyczne. Z drugiej strony, jeśli chce być estetyczny, zależy mu tylko na tym, czy może to zrobić, czy nie - w obu przypadkach cienie niekomplementarne są wystarczające, ponieważ cienie realistyczne nie używają kolorów komplementarnych. Nie atakowałem tego pytania, nawet go głosowałem :)
Luaan
@Luuan: Dobra, przepraszam za nieporozumienie w tej sprawie. Ale nie rozumiem, o co ci chodzi; jeśli chce wiedzieć, czy potrafi rysować cienie komplementarne, czy nie, w jaki sposób pomaga mu powiedzieć, że cienie niekomplementarne są wystarczające?
HelloGoodbye,
14

W przypadku cieni nie działa dobrze z powodów, które już wskazałeś. Nigdy nie wiadomo, ile cieni będzie na scenie, a cienie o różnych kolorach z różnych obiektów mogą wyglądać dziwnie. Może jednak dobrze działać w przypadku cieni, zwłaszcza w grze 2D. Ten zrzut ekranu pochodzi z Seiken Densetsu 3 (Squaresoft 1995):

Drzewo z purpurowym cieniem uzupełniającym

Zauważ, jak zacienione części drzewa wykorzystują fiolet jako uzupełniający kolor do żółtych pasemek w oświetlonych częściach i jak dobrze to działa. Ale zauważ również, że artysta postanowił nie pokolorować cienia drzewa.

Philipp
źródło
2
Tsugumo opisał to w świetnym tutorialu o
Kelly Thomas
@KellyThomas Stąd mam zrzut ekranu.
Philipp
1
Osobiście to: gamedev.net/page/resources/_/creative/visual-arts/… to artykuł, który miałem na myśli, kiedy napisałem swoją odpowiedź. Polecam, świetna lektura wprowadzająca.
v.oddou
Jak napisałem w komentarzu do pytania, twoja odpowiedź, szczególnie obraz, przypomniała mi o tym
niefotorealistycznym
9

Jeśli używasz mieszania alfa , możesz położyć dodatkowy cień, który będzie działał na dowolnym tle.

Jednak może być lepszy lub szybszy. Jest to coś, co może się zmienić w zależności od konkretnej gry.

Nie mam wystarczającej liczby przedstawicieli, aby skomentować odpowiedź @ v.oddou, ale chcę powiedzieć, że chociaż celowe tworzenie komplementarności cieni może nie mieć sensu w renderowaniu symulacji rzeczywistości, w grach jest wiele przypadków, w których może to mieć sens. Tak jak jego przykład, że robi się to dla efektu artystycznego.

Eben
źródło
5

Obiekty rzadko są oświetlane całkowicie przez jedno punktowe źródło światła. W większości przypadków obiekty otrzymają dużą część swojego oświetlenia z dominującego źródła punktowego, ale otrzymają dodatkowe oświetlenie z innego punktu lub źródeł, w tym niektóre rozproszone światło, które zostało rozproszone przez inne obiekty lub (w przypadku scen na zewnątrz) atmosferę. Jeśli obiekt jest oświetlony jasnym źródłem białego punktu, ale jest oświetlony niebieskawym światłem otoczenia, które jest tylko 2% tak jasne, kolor światła otoczenia nie będzie zauważalnie wpływał na części obiektu oświetlone przez pierwotny punktowe źródło, ale będzie bardzo widoczne w tych częściach, które są głównie oświetlone przez niebieskawe otoczenie.

W niektórych kontekstach sensowne może być śledzenie koloru światła otoczenia i na skutek tego lekko cieniowanie, ale nie widzę powodu, aby obiekty rzucały cienie, których kolory są dopełnieniem kolory obiektów.

supercat
źródło
3

Kolor uzupełniający jest w rzeczywistości iluzoryczny. Ułóż cytrynę na białym papierze i sfotografuj. Cień będzie miał żółty, a nie fioletowy, z powodu żółtego światła rozproszonego na cytrynie.

Teraz chodzi o to, czy użyć go w swojej grze. Jeśli szukasz stylu malarskiego, z pewnością możesz go dołączyć, choć będzie to wymagało dodatkowego kodowania shaderów, aby go zaimplementować (co zresztą możesz zrobić, w zależności od tego, jak wyrafinowany jesteś nierealistyczny system renderowania).

Jeśli natomiast dążysz do realistycznego stylu, po prostu się o to nie martw.

Rohan
źródło
1

Czy nie wydaje się to trochę dziwne widzieć rzeczy w rzędzie w innym kolorze, z różnymi kolorami cieni?

Dla mnie obraz różnych owoców nie wygląda jak 3 kawałki owoców na białym tle; wygląda jak 3 różne zdjęcia owoców, prawdopodobnie dlatego, że cień w innym kolorze wskazuje, że są w innym kontekście.

Śmiem twierdzić, że jest to subiektywne, ale uważam, że jest to trochę wątpliwe - zgodziłbym się również z tym, co mówi v.oddou, chociaż zakłada to, że próbujesz sprawić, by rzeczy wyglądały „realistycznie”.

Oczywiście drugim wysięgnikiem cieni jest wskazanie, jak wysoko obiekt znajduje się na powierzchni. Brak cienia = nie możesz powiedzieć, czy jest to 1 powyżej, czy 40 stóp (lub cokolwiek to są jednostki). Jeśli jest jakikolwiek cień, twój mózg wykonuje obliczenia za ciebie, a ty próbujesz zgadnąć, kiedy obiekt się podskoczy, czy można pod nim biegać itp. Dla tej funkcji, pomyślałbym tylko cień w skali szarości pomieszanie z kolorem tła, jeśli to możliwe, załatwi sprawę.

Jest też dziwny naturalny efekt, gdy jest więcej niż jedno źródło światła o różnych kolorach. Jeśli masz kilka kolorowych świateł, które dają w zasadzie białą mieszankę światła, niecieniowane tło daje mieszankę wszystkich kolorów, ale jeśli cień blokuje powiedzmy niebieskie światło, cień może wyglądać stosunkowo czerwonawo.

Nawet w rzeczywistości wygląda to nieco dziwnie! Tak więc moja odpowiedź brzmiałaby: chociaż jest to ciekawe pojęcie i być może warte eksperymentowania na niektórych nieruchomych obrazach (lub znalezieniu przykładów), spodziewam się, że nie warto wkładać wysiłku w obliczenie koloru cienia.

użytkownik2808054
źródło
1

Zastanawiałem się nad zrobieniem tego wcześniej dla renderera NPR, ponieważ mam doświadczenie w sztukach wizualnych i zawsze uwielbiałem wygląd niektórych rodzajów popularnych dzieł science fiction i fantasy, które wyolbrzymiają ten efekt, ale jak zauważyli inni, nie ma to sensu z fizyki punkt widzenia. Nie ma mowy, żebyś miał niebieskie światło w cieniu, chyba że coś faktycznie odbija w nim niebieskie światło.

Ale jeśli szukasz nierealistycznego renderera, efekt może być bardzo piękny z kontrastowymi odcieniami (choć w sposób malarski, a nie realistyczny). To powiedziawszy, sugerowałbym użycie koloru źródła (źródeł) światła, aby zabarwić cień, a nie materiału obiektu zasłaniającego światło. To powinno uprościć obliczenia i nadal wiąże wszystkie elementy kompozycji razem. Na przykład ciepłe światło z kominka może rzucać chłodny niebieski cień, gdy źródło światła jest zasłonięte, nawet jeśli nie ma żadnych niebieskich przedmiotów odbijających światło w tym cieniu, a tym bardziej dużo niebieskiego światła.

Drugą rzeczą do odnotowania jest to, że koło kolorów artysty opiera się na subtraktywnym charakterze mieszania pigmentów. Nie opiera się na uzupełniających się jasnych kolorach. W rezultacie koło kolorów artysty uważa, powiedzmy, zielony za kolor uzupełniający się z czerwonym:

wprowadź opis zdjęcia tutaj

... nie niebieskozielony, a zmieszanie tych dwóch pigmentów spowodowałoby brzydki brązowo-szary kolor, a nie biały, jak w przypadku addytywnego mieszania światła. Podobnie dopełnienie niebieskiego byłoby pomarańczowe zamiast żółtego i tak dalej. Skuteczne naśladowanie wyglądu prawdopodobnie wymagałoby użycia tego rodzaju koła kolorów.


źródło
0

To pytanie jest bardzo stare i ma wiele odpowiedzi, ale poszedłem na studia artystyczne. Oto moja odpowiedź:

Teoria, którą pan stwierdził, zgodnie z moją wiedzą, jest tylko częściowo poprawna. W rzeczywistości kolor cieni stanowi dopełnienie koloru źródła światła . Jeśli się nad tym zastanowić, ma to sens: rzucony cień można zdefiniować jako światło zablokowane, a jeśli masz na przykład żółte światło (słońce), pozostanie ci niebieskawy cień. Aby zilustrować tę kwestię, rozważ „Green Stripe” Matisse'a (kogoś, kogo można nazwać „jednym ze starych mistrzów” lub cokolwiek innego):

link do wyników wyszukiwania grafiki Google dla „The Green Stripe”.

Zwróć uwagę, że czerwone światło, które jest rzucane z prawej strony ramki, pozostawia ciemnozielony cień rdzenia i żółtawe odbicie . Zieleń jest uzupełnieniem magenty, a żółty to suma lub zieleń i czerwień (addytywna teoria kolorów).

Przypomnij sobie, że teoria, jak twierdzisz, jest częściowo poprawna! W zbliżeniach jasnych i odblaskowych obiektów na białej powierzchni, takich jak obraz połączony z jabłkiem, światło otoczenia w pokoju uderza w ciemną stronę jabłka i odbija kolor jabłka na powierzchnię, na której odpoczywa. Kolor rdzenia cienia jest nadal dopełnieniem koloru źródła światła !! W środowisku studyjnym (rodzaj miejsca, w którym samotne jabłka znajdują się na białych pustych powierzchniach), twoje źródło światła jest prawdopodobnie sztuczne i możliwie jak najbliżej czystej bieli, aby ludzie pracujący z kolorem i pigmentami w tym środowisku nie mieli ich zrozumienie koloru wypaczone z powodu kolorowego światła (spróbuj malować to samo dwa razy w świetle słonecznym, a następnie w fotograficznym ciemnym pokoju (czerwonym)! porównaj te wyniki lol).

Teraz! aby odpowiedzieć na twoje pytanie: dynamiczne cienie, a nawet tylko statycznie kolorowe cienie są wyjątkowo wykonalne. Czy są objęte zakresem projektu z uwzględnieniem wymaganego czasu, pieniędzy i pracy? Cóż, to zupełnie inne pytanie, na które musisz sam odpowiedzieć !! Szare / czarne cienie to SIN (imo) i powinieneś ich unikać, jeśli chcesz, aby twoja gra była ogólnie uważana za przyjemną z estetycznego punktu widzenia. Nie trzeba przewidywać tła, środowiska ani brać pod uwagę koloru obiektu. Jedyną informacją, której potrzebujesz do łatwych i naturalnych cieni, jest kolor źródła światła. Rozważ ten zrzut ekranu z ataku na Titan: LINK

Cienie w mojej grze są zawsze ciemnym i pozbawionym desaturacji dopełnieniem koloru źródła światła w mojej grze: RELATYWNIE ŁATWE, kilka gier już to robi

Cienie w mojej grze uwzględniają okluzję otoczenia, odbijające się światło, kolor wielu źródeł i typów światła itp. Itp.? To już dużo cholernej roboty. Jeśli jesteś niezależnym programistą, którego głównym celem jest tworzenie gier, a nie programowanie graficzne lub tworzenie narzędzi, nie jest to absolutnie warte twojego czasu (opinia).

Dziękuję za przeczytanie, mam nadzieję, że pomoże to każdemu, kto odwiedzi ten starożytny problem w przyszłości !!! : -)

jodediah holems
źródło