Warsztat - Programowanie gier

Lipiec 30, 2010, 17:40:18 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: 1 [2] 3
  Drukuj  
Autor Wątek: Trapezoidal Shadow Maps  (Przeczytany 2420 razy)
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #15 : Styczeń 22, 2009, 17:21:15 »

Cytuj
Z light-bleeding'iem? Bleee... Tongue. A kazda proba usuniecia tego artefaktu oznacza dluzszy pixel shader
Bleeding elegancko można usunąć jedną instrukcją, więc karta nawet tego nie poczuje (inna kwestia, że VSM i tak sam z siebie jest tańszy niż większość innych metod). Jedyna wada takiego rozwiązania to to, że nieco zmniejsza nam ono zakres miękkości cienia, ale i tak efekt jest fajny. Smiley

Cytuj
Za to jesli np. latarnie maja swiecic i powodowac rzucanie cieni to najpewniej czesc latarni bedzie na tyle odlegla od kamery, ze scissor test i z-bounds (przeklete ATI) spokojnie moga zalatwic sprawie z nadmiernym fill-rate'em.
Co ATI ma poradzić, skoro z-bounda opatentowała NVidia?

Cytuj
Za to jakosc tej "miekkosci" pozostawia jeszcze wiele do zyczenia. http://americasarmy.pl/zdjecia/recenzje/cod4mw/shot0018mu7.jpg - gdyby tutaj zaczac "ruszac" sloncem, to mielibysmy takie "falowanie" cienia, ze nawet gracza-amatora by to denerwowalo Tongue
To że w jednej grze niezbyt się im udało, to nie znaczy że tak być musi. Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
maxest
Gość
« Odpowiedz #16 : Styczeń 22, 2009, 20:32:06 »

Cytuj
Co ATI ma poradzić, skoro z-bounda opatentowała NVidia?
W takim razie przekleta NVidia Tongue. Juz dawno nie slyszalem o rownie idiotycznym posunieciu

Cytuj
Bleeding elegancko można usunąć jedną instrukcją, więc karta nawet tego nie poczuje
Masz na mysli trick z "cut off the tail", gdzie po prostu odejmuje sie jakas stala wartosc od p_max? Jak to sprawdzalem to dzialalo calkiem fajnie, ale nie wiem jak bedzie gdy rozmyje sie shadow map'ke bo tego po prostu nie robilem Tongue.
A tu przy okazji wychodzi kolejny drobny problem z VSM'em - blur shadow map'y, ktory troszke kosztowac musi, no i oczywiscie zajetosc pamieci.

Cytuj
To że w jednej grze niezbyt się im udało, to nie znaczy że tak być musi. Smiley
Stan w odleglosci (PI*oko) 10 metrow od kamienia w Crysis'ie - zamiast ladnego cienia rzucanego przez drzewo zobaczysz jakies porozmywane ciemne piksele na przemian z jasnymi Tongue. W Crysis'ie to im jeszcze otoczenie duzo dalo - w gestym lesie jest tyle cienia ze takich artefaktow sie nie dostrzega, ale w takim CoD'zie to juz na kazdym kroku. Dziwie sie, ze skoro wszyscy stosuja PSSM'a to nawet nie uzywaja do poszczegolnych split'ow jakiegos TSM'a. Slonce z reguly jest ustawione mniej wieccej pod katem 45-60 stopni a to jest bardzo fajny przypadek dla tych metod reparametryzujacych. Do dzisiaj uwazam, ze najlepsze cienie widzialem w Call of Juarez (chyba 2 split'y z TSM'em na kazdym)
« Ostatnia zmiana: Styczeń 22, 2009, 20:33:45 wysłane przez maxest » Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #17 : Styczeń 22, 2009, 20:45:11 »

Cytuj
W takim razie przekleta NVidia Tongue. Juz dawno nie slyszalem o rownie idiotycznym posunieciu
Idiotycznym? Wymyślili nową technologię, to ją opatentowali i tyle. Praktycznie każda firma tak robi.

Cytuj
Masz na mysli trick z "cut off the tail", gdzie po prostu odejmuje sie jakas stala wartosc od p_max? Jak to sprawdzalem to dzialalo calkiem fajnie, ale nie wiem jak bedzie gdy rozmyje sie shadow map'ke bo tego po prostu nie robilem Tongue.
p_max? W mojej implementacji nie ma niczego o tej nazwie. Wink Po prostu robię "saturate(shadow*2-1)" na wyznaczonej wartości współczynnika zacienienia i praktycznie wszystkie artefakty znikają. Jak zrobiłem test w 2D jak wygląda profil cienia po takiej operacji, to wygląda na to, że obszar bleedingu zmniejsza się o jakieś 90% - na tyle, że mało prawdopodobne jest by coś tam wpadło. Smiley

Cytuj
A tu przy okazji wychodzi kolejny drobny problem z VSM'em - blur shadow map'y, ktory troszke kosztowac musi, no i oczywiscie zajetosc pamieci.
Co ma zajętość pamięci do blura? Poza tym jak chcesz mieć miękkie cienie to gdzieś jakąś formę blura najczęściej musisz zrobić, a znacznie mniej kosztowne jest zblurowanie niewielkiej shadowmapki, niż próbkowanie shadowmapy kilkanaście razy jak w przypadku PCF. Smiley

Cytuj
Do dzisiaj uwazam, ze najlepsze cienie widzialem w Call of Juarez (chyba 2 split'y z TSM'em na kazdym)
Co racja to racja, nasi Techlandowcy się w tym wypadku akurat postarali. Myślę, że to mógł być nawet zwykły TSM, ale ciężko coś tu powiedzieć bez głebszej analizy (PIX prawdę Ci powie). Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
maxest
Gość
« Odpowiedz #18 : Styczeń 22, 2009, 21:16:33 »

Cytuj
Idiotycznym? Wymyślili nową technologię, to ją opatentowali i tyle. Praktycznie każda firma tak robi.
Z radoscia uzylbym z-bound'a. Ale jak teraz slysze ze to pojdzie tylko na NVidii to albo poczekam, az ATI bedzie mialo patent, albo na znikniecie ATI z rynku Tongue

Cytuj
p_max? W mojej implementacji nie ma niczego o tej nazwie. Wink
No ja wzialem jakas gotowa implementacje z artykulu od NVidii Tongue. p_max to po prostu wartosc, ktora oblicza te gorna granica z nierownosci Chebyschewa. Gdy sie ja zmniejsza to light-bleeding znika.

Cytuj
Co ma zajętość pamięci do blura?
Nic, to byly dwa oddzielne argumenty Wink

Cytuj
Poza tym jak chcesz mieć miękkie cienie to gdzieś jakąś formę blura najczęściej musisz zrobić, a znacznie mniej kosztowne jest zblurowanie niewielkiej shadowmapki, niż próbkowanie shadowmapy kilkanaście razy jak w przypadku PCF. Smiley
Zblurowanie niewielkich szesciu shadow map'ek Wink (jesli mowimy o tych point-light'ach). No i VSM cechuje malo fajna stabilnosc numeryczna i np. u mnie G16R16 powoduje "przeswietlenia" w niektorych miejscach sceny, ogolnie malo fajny widok.

Cytuj
Myślę, że to mógł być nawet zwykły TSM, ale ciężko coś tu powiedzieć bez głebszej analizy
Analiza wzrokowa - jak sie dobrze przyjrzysz to zobaczysz ze kilka metrow od kamery cienie wyglada nieco gorzej, a z 200-300 metrow dalej juz cala shadow mapa znika Cheesy (dobrze jest to widoczne gdy gra sie Billym na poczatku gry, idac tym mostem do swojej rodzinnej miejscowosci; gdy spojrzysz za siebie w kierunku przeciwnym do miasta, to wyraznie widac jak cien od drzewek znika z pagorkow Smiley)
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #19 : Styczeń 22, 2009, 21:28:37 »

Cytuj
Z radoscia uzylbym z-bound'a. Ale jak teraz slysze ze to pojdzie tylko na NVidii to albo poczekam, az ATI bedzie mialo patent, albo na znikniecie ATI z rynku Tongue
A kto broni użyć z-bounda, jeśli jest wspierany? Smiley

Cytuj
Zblurowanie niewielkich szesciu shadow map'ek Wink (jesli mowimy o tych point-light'ach).
Jak wyżej, blurować musisz tylko te fragmenty, które aktualizujesz w danej klatce. Wink

Cytuj
No i VSM cechuje malo fajna stabilnosc numeryczna i np. u mnie G16R16 powoduje "przeswietlenia" w niektorych miejscach sceny, ogolnie malo fajny widok.
Nie wiem o jakie prześwietlenia chodzi, bo mała stabilność numeryczna wychodzi zwykle w postaci różnorakich pasków i ciapek w obszarze półcienia (tam gdzie jest pełne światło lub pełny cień jest zwykle wszystko OK). Z problemem stabilności numerycznej to akurat poradziłem sobie w nieco inny sposób i u mnie śmiga w tej chwili wszystko ładnie na G16R16. Smiley

Cytuj
Analiza wzrokowa - jak sie dobrze przyjrzysz to zobaczysz ze kilka metrow od kamery cienie wyglada nieco gorzej, a z 200-300 metrow dalej juz cala shadow mapa znika Cheesy (dobrze jest to widoczne gdy gra sie Billym na poczatku gry, idac tym mostem do swojej rodzinnej miejscowosci; gdy spojrzysz za siebie w kierunku przeciwnym do miasta, to wyraznie widac jak cien od drzewek znika z pagorkow Smiley)
No to znikanie widziałem, ale nie zauważyłem, żeby w jakiejś konkretnej odległości od kamery występowała nagła zmiana jakości cieni. To że cienie w TSM mają mniejsza jakość wraz z odległością to akurat normalne. Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
maxest
Gość
« Odpowiedz #20 : Styczeń 22, 2009, 21:36:24 »

Cytuj
ale nie zauważyłem, żeby w jakiejś konkretnej odległości od kamery występowała nagła zmiana jakości cieni
Wystepuje Smiley. Sprawdzalem to kilka razy i na pewno sa 2 split'y (w najwyzszej mozliwej grafice).

Cytuj
A kto broni użyć z-bounda, jeśli jest wspierany? Smiley
Nie lubie nieprzenosnych rozwiazan Tongue (w kontekscie kart graficznych)

Cytuj
mała stabilność numeryczna wychodzi zwykle w postaci różnorakich pasków i ciapek w obszarze półcienia
U mnie jest to duza ilosc bialych paskow w obszarach oswietlonych (polcieni wyglada normalnie). Chyba, ze przyczyna jest u mnie zapisywanie na shadow map'ie odleglosci jako z/w zamiast odleglosci liniowej (uzywam rzutowania ortogonalnego).
« Ostatnia zmiana: Styczeń 22, 2009, 21:38:47 wysłane przez maxest » Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #21 : Styczeń 22, 2009, 21:44:22 »

Cytuj
Nie lubie nieprzenosnych rozwiazan Tongue (w kontekscie kart graficznych)
To jest przenośne rozwiązanie, o ile będzie używane jedynie do przyspieszenia działania. Smiley

Cytuj
U mnie jest to duza ilosc bialych paskow w obszarach oswietlonych (polcieni wyglada normalnie).
No to nie brak stabilności numerycznej, tylko za mały bias. Każda technika shadow map przy za małym biasie będzie tak wyglądać. Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
KriS
Full Member
***

wiadomości: 126


Zobacz profil WWW
« Odpowiedz #22 : Styczeń 22, 2009, 22:08:11 »

Stan w odleglosci (PI*oko) 10 metrow od kamienia w Crysis'ie - zamiast ladnego cienia rzucanego przez drzewo zobaczysz jakies porozmywane ciemne piksele na przemian z jasnymi Tongue. W Crysis'ie to im jeszcze otoczenie duzo dalo - w gestym lesie jest tyle cienia ze takich artefaktow sie nie dostrzega, ale w takim CoD'zie to juz na kazdym kroku. Dziwie sie, ze skoro wszyscy stosuja PSSM'a to nawet nie uzywaja do poszczegolnych split'ow jakiegos TSM'a. Slonce z reguly jest ustawione mniej wieccej pod katem 45-60 stopni a to jest bardzo fajny przypadek dla tych metod reparametryzujacych. Do dzisiaj uwazam, ze najlepsze cienie widzialem w Call of Juarez (chyba 2 split'y z TSM'em na kazdym)

TSM i podobnych nie używa się z prostego powodu - migające piksele cienia są dużo brzydsze niż mniejsza rozdzielczość.

A co do shadowmap, to polecam obejrzeć Bad Company, chodziłem po planszy z 30min i nie mogłem się żadnych większych artefaktów dopatrzyć.
« Ostatnia zmiana: Styczeń 22, 2009, 22:09:45 wysłane przez KriS » Zapisane

http://KriScg.blogspot.com
"Don't have any friends? Still a virgin? Programming is for you!"
maxest
Gość
« Odpowiedz #23 : Styczeń 22, 2009, 22:31:44 »

Cytuj
TSM i podobnych nie używa się z prostego powodu - migające piksele cienia są dużo brzydsze niż mniejsza rozdzielczość.
Tyle, ze jak shadow mapa ma za niska rozdzielczosc to miganie takze wystepuje. Z kolei w Techlandowych TSM'iem zadnego migania nie zauwazylem. Ich cienie wygladaja na tak twarde, ze z poczatku juz myslalem ze to nieco rozmyty shadow volume - powaznie Tongue

Cytuj
No to nie brak stabilności numerycznej, tylko za mały bias. Każda technika shadow map przy za małym biasie będzie tak wyglądać. Smiley
To chyba nie to bo biale paski nie zniknely Tongue

Cytuj
To jest przenośne rozwiązanie, o ile będzie używane jedynie do przyspieszenia działania. Smiley
Ale i tak w tym momencie "faworyzujemy" ktoregos producenta Smiley. Chociaz, zawsze mozna zrobic z-bounds w pixel shader'ze, ale tutaj z kolei tracimy early-z :/. Ja chce konsole!
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #24 : Styczeń 22, 2009, 23:25:19 »

Cytuj
To chyba nie to bo biale paski nie zniknely Tongue
No to nie wiem co tam dziwnie robisz, ale ja takich problemów nie zauważyłem. Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
KriS
Full Member
***

wiadomości: 126


Zobacz profil WWW
« Odpowiedz #25 : Styczeń 23, 2009, 02:00:18 »

Tyle, ze jak shadow mapa ma za niska rozdzielczosc to miganie takze wystepuje. Z kolei w Techlandowych TSM'iem zadnego migania nie zauwazylem. Ich cienie wygladaja na tak twarde, ze z poczatku juz myslalem ze to nieco rozmyty shadow volume - powaznie Tongue

Przynajmniej przy nieruchomym źródle światła miganie nie występuje (hint: stable CSM). A wszelkie reparametryzacje tylko zwiększają aliasing cienia.
Zapisane

http://KriScg.blogspot.com
"Don't have any friends? Still a virgin? Programming is for you!"
maxest
Gość
« Odpowiedz #26 : Styczeń 23, 2009, 16:21:08 »

Cytuj
Przynajmniej przy nieruchomym źródle światła miganie nie występuje (hint: stable CSM)
Czyli to, czego wszyscy uzywaja w polaczeniu z PSSM'em Tongue (czy tam CSM'em; z tymi nazwami tutaj to podobnie jak z bitangent i binormal Smiley).
No i, jak napisales, dziala to tylko dla nieruchomych zrodel swiatla. Nie czytalem jeszcze tego artykulu w ShaderX6 o tym stable PSSM'ie, ale mnie poki co udalo sie jedynie uzyskac "stabilnosc" przy translacji shadow-mapy. A to troszke malo
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #27 : Styczeń 23, 2009, 17:46:08 »

Cytuj
Czyli to, czego wszyscy uzywaja w polaczeniu z PSSM'em Tongue (czy tam CSM'em; z tymi nazwami tutaj to podobnie jak z bitangent i binormal Smiley).
A czy to czegoś w połączeniu z tym trzeba używać? Rysujesz kaskadę shadowmapek w rzucie prostopadłym z punktu widzenia światła i gotowe. Smiley

Cytuj
Nie czytalem jeszcze tego artykulu w ShaderX6 o tym stable PSSM'ie, ale mnie poki co udalo sie jedynie uzyskac "stabilnosc" przy translacji shadow-mapy. A to troszke malo
Inne operacje poza translacją nie są aż tak potrzebne. Smiley
« Ostatnia zmiana: Styczeń 23, 2009, 17:58:21 wysłane przez Krzysiek K. » Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
maxest
Gość
« Odpowiedz #28 : Styczeń 23, 2009, 17:49:38 »

Cytuj
Inne operacje poza translacją nie są aż tak potrzebne. Smiley
Skalowanie by sie jednak przydalo. Rotacja tez bym nie pogardzil Tongue

Cytuj
A czy to czegoś w połączeniu z tym trzeba używać?
Jasne, ze nie trzeba. Ale skoro mozna zlikwidowac migotanie (dla statycznej czesci sceny) bardzo tanim kosztem to chyba jednak warto Wink
Zapisane
Krzysiek K.
Member2000
*******

wiadomości: 9810



Zobacz profil
« Odpowiedz #29 : Styczeń 23, 2009, 18:00:49 »

Cytuj
Skalowanie by sie jednak przydalo. Rotacja tez bym nie pogardzil Tongue
Skalowanie właśnie tutaj wydaje mi się najmniej potrzebne - w końcu każdy poziom CSMa ma swoją założoną rozdzielczość i nie musi jej zbytnio zmieniać. Rotacja już by się przydała, ale skalowanie i rotacja są niestety takimi operacjami, które z definicji mają małe szanse trafić nowymi tekselami w stare bez większych przesunięć więc pozostaje translacja. Smiley
Zapisane

Aktualne zajęcie: Szkoła DJKurs DJ
Strony: 1 [2] 3
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC