wtorek, 4 sierpnia 2009

Ameryka - dni 1-3

No i jesteśmy w Ameryce. Dotarliśmy w sumie bez wiekszych problemów (nie licząc drobnych kłopotów na lotnisku - ktoś chyba czegoś zapomniał wpisać do komputera podczas naszej poprzedniej wizyty i okazało się że Anety w Stanach jeszcze nie było, mimo że w paszporcie ma stempel...)
Nowy York powitał nas upałem i gigantycznymi korkami. Najpierw czekaliśmy na shuttle bus'a jakieś 1.5h (utknął po drodze...) a potem jechaliśmy nim do hotely kolejne 2h. Dobrze, że hotel wybraliśmy zaraz obok LaGuardii z ktorej następnego dnia mieliśmy lecieć do Nowego Orleanu. LaGuardia to w ogóle niezle lotnisko - zero organizacji, wszędzie pchają sie ludzie, ogólny syf. Ale w końcu udało się odlecieć (czekaliśmy w samolocie jedyną godzinkę - akturat zamkneli pasy w kierunku południowym - i tak nieźle bo poprzedniego dnia jakiś kretyn udawał że ma bombe i samoloty w ogóle nie odlatywały).
Nowy Orlean okazał sie makabrycznie wilgotnym (do tego stopnia że na obietywie bez wiekszej przyczyny osadza sie para wodna ;-), ale za to bardzo urokliwym miejscem. Hotel w ktorym sie zatrzymaliśmy jesł chyba jedyn z lepszych w jakich mieszkałem w stanach. Śniadania są (i to całkiem urozmaicone), jest mały basen, i fajny wystrój (powrzucam zdjęcia na picase). Hotel jest położony zaraz przy French Quarter - najsłynniejszej dzielnicy w Nowym Oreanie - pełnej fajnej hiszpańskiej architektury, knajp, klubów go-go (nie mogłem wejść :-( Wszędzie serwują lokalne kulinaria - głównie z krewetek, krabów, czasem z aligatora. Tego ostatniego jeszcze nie próbowałem ale reszta nawet jadalna.
Od razu pierwszego dnia po przylocie poszliśmy się zarejestrować. I tu szok. Ernest N. Morial Convention Center jest chyba najwięszym centrum konferencyjnym jakie w życiu widziałem (nie żebym widział ich tak dużo, ale zawsze...). Ma ponad kilometr długości, 3 piętra. Jest monstrualne. Dotarło to do mnie następnego dnia, kiedy od momentu kiedy wszedłem do środka, do chwili kiedy wszedłem do sali minęło dobych 10 minut).
Na pierwszy dzień wybrałem kurs Advances in Real-Time Computer Graphics - kurs gdzie ludzie z Bungie, Cryteka, Rockstarai jeszcze paru innych firm opowiadali o swoich pomysłach.
Tak po krótce:
- Bungie: Natalya Tatarchuk opowiadała o ich wojnach z cieniami (VSM, ESM, połączenia obu w różny sposób) - jak sama to określiła: "bunch of hacks"
- Bungie: Hao Chen - opowiadał jak robią niebo (model analityczny ale uwględniający wielokrotne rozproszenia) i jak liczą GI na GPU (to fajny patent, też zacząłem się temu przyglądać na chwilę przed wyjazdem - tylko że oni robią to już ponad pół roku ;-)
- Anton Kapalyan z Cryteka opowiadał o ich podejsciu do GI. Na to wystąpienie bardzo czekałem i trochę się na nim zawiodłem. Nie było w nim nic nowego, jedynie poskładanie do kupy starych pomysłów. Całość polega na tym, że na scenie rozpięta jest trójwymiarowa tekstura, w której każdym tekselu zapisane jest oświetlenie, w postaci SH, żeby uzyskać kierunkowość. Te wartości są propagowane do kolejnych komórek i finalne oświetlenie polega na samplowniu tej tesktury. Żeby uzyskać efekt pierwszego bouncu światła, tekstura jest wypełniana światłami generowanymi z wykorzystaniem Reflective Shadow Mapy - czyli renderujemy widok z punktu widzenia światła i dla każdego uzyskanego pixela generujemy małe światło na scenie. Podobne podejscie moża zastosować z deferedem/prepassem (choć ilość wygnerowanych świateł może być dość duża) - tekstura sprawia że ilość świateł nie ma znaczenia, ale jej rozdzielczość pozostawia wiele do życzenia. Oczywiście światło odbite z założenia jest dość miękkie i duża rozdzielczość nie jest potrzebna, ale jednak w ich implementacji widać było trochę artefaktów. Odbicie oczywiście nie uwzglęnia już zasłaniania.
Wygląda to całkiem przyjemnie, i zaczyna się stawać całkiem popularne - z prawie takiej samej techniki korzystają w LittleBigPlanet i SplitSecond. Gigantyczną zaletą jest to, że takie oświetlenie można potraktować jako jeszcze jeden rodzaj światła dla renderingu deferowanego (prepass czy pełny) - robimy pass po całym ekranie, odtwarzamy pozycje i samplujemy teksturę 3D.
- Wolfgang Engel (kiedyś z Rockstara, nota bene siedzi na krześle obok w chwili kiedy to pisze) opowiadał o swoich pomysłach na LightPrePass. W sumie nic nowego, a do tego prezentacja była bardzo chaotyczna, mało czytelna. Wolfgang często skakał między slajadami. Nawet w temacie AA, w którym liczyłem na jakieś nowości opowiedział jedynie o standardowej sztuczce z wyłuskaniem pixeli brzegowych (z wykorzystaniem centroida) i potraktowaniu ich innym shaderem, obliczającym oświetlenie per próbka.
A potem była przerwa podczas której wyhaczyłem Peter-Pike'a Sloana (z którym przygotowywałem mojego talka). I jakimś dziwnym zbiegiem okoliczności poszliśmy z nim i jego ziomami z Microsoftu na lunch. Masakra. Nie żeby rozmawiali o nie-wiadomo-czym, ale robili to w takim tempie, że chyba zanim zdążyłbym sklecić zdanie, oni 3x zmieniliby już temat. Oh well, przynajmniej poznałem troche ludzi z Microsoftu. ;-)
Po przerwie był ciąg dalszy
- koleś z Disneya opowiadał o pracy przy Split/Second (czy jakoś tam - takie wyścigi). Też mają ten patent z teksturą 3D z oświetleniem odbitym, tyle że nie kłopoczą się z jej updatowaniem jak Crytek (mają stałe oświetlenie). O tym nikt nie wspomniał, ale tak sobie nad tym myślę, że można zrobić PRT dla takiej tekstury i (jeśli ograniczymy się w niej do oświetlania od nieba) dość tanio przeliczać zawarte w niej wartości przy zmianie oświetlenia - będę musiał poeksperymentować po powrocie.
- na koleś wystąpienie miał Alex Evans (chyba) z Media Molecule. I to był zdecydowanie najlepszy występ tego dnia. Opowiadał o tym jak robili silnik do LittleBigPlanet. Bardzo błyskotliwa prezentacja. Zrobili silnik dedykowany stricte pod PS3 (wszystkie vertexy idą przez SPU, KAŻDY jest symulowany fizycznie, KAŻDY jest skinowany, na koniec w zależności od różnych ustawień odpowiednio blendowane są wyniki) stricte pod swoją grę (3 plany, specyficzny wygląd) i tak jak sobie to wymyślili (np. nie chcieli pisać particli - i ich nie ma, wszystko jest geometrią idącą przez jeden i ten sam pipeline przetwarzania vertexów). Bomba.
Wieczerem poszliśmy jeszcze do French Quarter na kawe do Cafe Du Mondo (podobno słynna kawiarnia) a ja zgubiłem klucz do pokoju :-)
Jetlag nie dokucza nawet za bardzo, obudziłem sie dopiero o 5 rano i tylko na jakieś 15 minut. Na razie jakoś nie stresuje sie piątkowym wystąpieniem, zobaczymy jak bedzie później (choć dzisiaj trochę mnie zgięło jak wszedłem do sali w której będę mówił - takie konkretne audytorium z pochyłą podłogą, jakieś 20 rzędów, tak na oko ze 30 siedzeń w rzędzie; spoko, na pewno nie będzie pełno).