|
Krzysiek K.
|
 |
« Odpowiedz #15 : Styczeń 22, 2009, 17:21:15 » |
|
Z light-bleeding'iem? Bleee...  . 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.  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? To że w jednej grze niezbyt się im udało, to nie znaczy że tak być musi. 
|
|
|
|
|
Zapisane
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #16 : Styczeń 22, 2009, 20:32:06 » |
|
Co ATI ma poradzić, skoro z-bounda opatentowała NVidia?
W takim razie przekleta NVidia  . Juz dawno nie slyszalem o rownie idiotycznym posunieciu 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  . A tu przy okazji wychodzi kolejny drobny problem z VSM'em - blur shadow map'y, ktory troszke kosztowac musi, no i oczywiscie zajetosc pamieci. 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  . 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.
|
 |
« Odpowiedz #17 : Styczeń 22, 2009, 20:45:11 » |
|
W takim razie przekleta NVidia  . Juz dawno nie slyszalem o rownie idiotycznym posunieciu Idiotycznym? Wymyślili nową technologię, to ją opatentowali i tyle. Praktycznie każda firma tak robi. 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  . p_max? W mojej implementacji nie ma niczego o tej nazwie.  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.  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.  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). 
|
|
|
|
|
Zapisane
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #18 : Styczeń 22, 2009, 21:16:33 » |
|
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  p_max? W mojej implementacji nie ma niczego o tej nazwie. Wink
No ja wzialem jakas gotowa implementacje z artykulu od NVidii  . p_max to po prostu wartosc, ktora oblicza te gorna granica z nierownosci Chebyschewa. Gdy sie ja zmniejsza to light-bleeding znika. Co ma zajętość pamięci do blura?
Nic, to byly dwa oddzielne argumenty  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  (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. 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  (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  )
|
|
|
|
|
Zapisane
|
|
|
|
|
Krzysiek K.
|
 |
« Odpowiedz #19 : Styczeń 22, 2009, 21:28:37 » |
|
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  A kto broni użyć z-bounda, jeśli jest wspierany?  Zblurowanie niewielkich szesciu shadow map'ek  (jesli mowimy o tych point-light'ach). Jak wyżej, blurować musisz tylko te fragmenty, które aktualizujesz w danej klatce.  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.  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  (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  ) 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. 
|
|
|
|
|
Zapisane
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #20 : Styczeń 22, 2009, 21:36:24 » |
|
ale nie zauważyłem, żeby w jakiejś konkretnej odległości od kamery występowała nagła zmiana jakości cieni
Wystepuje  . Sprawdzalem to kilka razy i na pewno sa 2 split'y (w najwyzszej mozliwej grafice). A kto broni użyć z-bounda, jeśli jest wspierany? Smiley
Nie lubie nieprzenosnych rozwiazan  (w kontekscie kart graficznych) 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.
|
 |
« Odpowiedz #21 : Styczeń 22, 2009, 21:44:22 » |
|
Nie lubie nieprzenosnych rozwiazan  (w kontekscie kart graficznych) To jest przenośne rozwiązanie, o ile będzie używane jedynie do przyspieszenia działania.  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ć. 
|
|
|
|
|
Zapisane
|
|
|
|
|
KriS
|
 |
« 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  . 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
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #23 : Styczeń 22, 2009, 22:31:44 » |
|
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  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  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  . Chociaz, zawsze mozna zrobic z-bounds w pixel shader'ze, ale tutaj z kolei tracimy early-z :/. Ja chce konsole!
|
|
|
|
|
Zapisane
|
|
|
|
|
Krzysiek K.
|
 |
« Odpowiedz #24 : Styczeń 22, 2009, 23:25:19 » |
|
To chyba nie to bo biale paski nie zniknely  No to nie wiem co tam dziwnie robisz, ale ja takich problemów nie zauważyłem. 
|
|
|
|
|
Zapisane
|
|
|
|
|
KriS
|
 |
« 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  Przynajmniej przy nieruchomym źródle światła miganie nie występuje (hint: stable CSM). A wszelkie reparametryzacje tylko zwiększają aliasing cienia.
|
|
|
|
|
Zapisane
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #26 : Styczeń 23, 2009, 16:21:08 » |
|
Przynajmniej przy nieruchomym źródle światła miganie nie występuje (hint: stable CSM)
Czyli to, czego wszyscy uzywaja w polaczeniu z PSSM'em  (czy tam CSM'em; z tymi nazwami tutaj to podobnie jak z bitangent i binormal  ). 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.
|
 |
« Odpowiedz #27 : Styczeń 23, 2009, 17:46:08 » |
|
Czyli to, czego wszyscy uzywaja w polaczeniu z PSSM'em  (czy tam CSM'em; z tymi nazwami tutaj to podobnie jak z bitangent i binormal  ). 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.  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. 
|
|
|
|
« Ostatnia zmiana: Styczeń 23, 2009, 17:58:21 wysłane przez Krzysiek K. »
|
Zapisane
|
|
|
|
|
maxest
Gość
|
 |
« Odpowiedz #28 : Styczeń 23, 2009, 17:49:38 » |
|
Inne operacje poza translacją nie są aż tak potrzebne. Smiley
Skalowanie by sie jednak przydalo. Rotacja tez bym nie pogardzil  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 
|
|
|
|
|
Zapisane
|
|
|
|
|
Krzysiek K.
|
 |
« Odpowiedz #29 : Styczeń 23, 2009, 18:00:49 » |
|
Skalowanie by sie jednak przydalo. Rotacja tez bym nie pogardzil  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. 
|
|
|
|
|
Zapisane
|
|
|
|
|