Společnost Laminar Research vydala na svém vývojářském blogu aktualizaci pro X-Plane 12, v níž představuje různé nové systémy, které jsou v současné době vyvíjeny, včetně zcela nového systému fotometrického osvětlení pro dosažení přesnějšího zobrazení noční doby a mnohem více…
Podíváme se dnes na dva nové příspěvky na developerském blogu X-Plane.
Fotometrické osvětlení – co to je a proč ho potřebujeme?
Co je fotometrické renderování?
Jednoduše řečeno, fotometrické renderování je vykreslování, které se snaží vytvořit realismus tím, že ve svých interních výpočtech používá skutečné úrovně světla v reálném světě (zadané v reálných fyzikálních jednotkách). Jinými slovy, vykreslujeme svět takový, jaký je.
Před deseti lety byl obraz světa, který jste viděli prostřednictvím simulátoru, v podstatě sestaven z předem připravených obrázků nakreslených umělci ve Photoshopu. Tyto obrázky byly nakresleny co nejrealističtěji, ale měly nízký dynamický rozsah (LDR), protože víc monitor nezvládal. Obloha byla tak modrá, jak rozhodl umělecký ředitel, a pak byla vytvořena ve Photoshopu. Ve své době to fungovalo skvěle, ale s dnešními moderními grafickými kartami to umíme mnohem lépe.
Nejprve musíme jít výš
Tradiční vykreslení s nízkým dynamickým rozsahem (LDR) má barvy v rozsahu 0 až 255, ale pokud chceme modelovat skutečný svět, budeme potřebovat mnohem větší čísla. Svítivost měříme v kandelách na metr čtvereční (cd/m^2) nebo “nitech” (nt). Zde je tabulka Wikipedie, která uvádí svítivost nejrůznějších věcí. Několik příkladů:
- Světla na budovách v noci – 2 nt.
- Starý mizerný LDR monitor – 80 nitů.
- Pěkný novější LCD monitor – 500 nts.
- Jasná obloha – 7000 nts.
- Mraky – 10 000 nts.
- Slunce při západu – 600 000 nts
- Slunce v poledne – 1 600 000 000 nts.
Všimněte si, jak široký je rozsah čísel: denní snímky se skládají z věcí v “tisících” nts, ale s velkým rozsahem odchylek, zatímco noční mohou být jednociferné.
Aby tedy simulace působila realističtěji, bylo třeba vykreslovat pomocí větších čísel. Vykreslovací systém X-Plane 12 je kompletně HDR, od začátku až do konce, a používá 16bitové kódování s plovoucí desetinnou čárkou, aby udrželo mnohem širší dynamický rozsah jasu.
V X-Plane se můžete dívat do slunce
Je zřejmé, že se v X-Plane můžete dívat na slunce na LCD monitoru a nedojde k přímému poškození očí – maximální jas vašeho monitoru může být 100-500 nts. Jak ale zobrazit scénu s desetinásobným jasem monitoru nebo vyšším? Aby to vyřešili, museli vývojáři vymodelovat skutečnou kameru, která by sloužila jako vaše “oči” v simulátoru. Tato kamera v X-Plane nastavuje hodnotu expozice, která mapuje HDR scénu na váš monitor.
Dynamický rozsah počítačových monitorů však není příliš velký. Aby to vyřešili, použili na exponovaný obraz mapovač tónů. Mapovač tónů je nástroj, který “zmačká” některé světlé oblasti obrazu, abychom mohli na obrazovku současně umístit širší rozsah jasných barev. Mapovač tónů dokáže simulované scéně dodat vzhled, který se více podobá obrazu z filmového fotoaparátu než z levného nekvalitního digitálního fotoaparátu. Pomocí mapovače tónů grafici vyladili parametry kamery X-Plane tak, aby scéna vypadala brilantně a realisticky vzhledem k omezením počítačových monitorů.
Úrovně expozice v X-Plane 12 nastavuje podle času a povětrnostních podmínek. Jsou také modulovány automatickou expozicí, takže při rozhlížení se po scéně se kamera stává citlivější v tmavých oblastech (aby se usnadnilo čtení panelů) a méně citlivá ve světlých oblastech (aby nedošlo k oslnění).
Fyzika oblohy
Když už měl simulátor vykreslení, které přesně modelovalo skutečný svět, obloha pomocí Photoshopu by prostě nefungovala. Bylo třeba vytvořit novou oblohu, která by odpovídala světelným hodnotám (nitům) skutečné oblohy.
Za tímto účelem vypočítali developeři světelné hodnoty oblohy s ohledem na složení atmosféry, úhel pohledu a jas slunce. Obloha je modrá z nějakého důvodu (molekuly kyslíku) a modré oblohy dosáhli simulací tohoto rozptylového efektu.
Tato matematika pro oblohu funguje při pohledu z libovolného směru z libovolného místa, takže nejenže získáme modrou oblohu, ale při pohledu na zem ze vzduchu získáme správný “modrý” odstín, který odpovídá obloze, aniž by se grafici snažili ručně namalovat dva efekty, aby se shodovaly.
Za světlem
Aby mohli v X-Plane vytvořit fotometrický svět, potřebovali, aby zdroje světla v simulaci byly zadány v jednotkách reálného světa. X-Plane je dodáván s předprogramovaným jasem slunce, ale jak jasný je LCD displej ve vašem skleněném kokpitu? V X-Plane 12 zadávají konstruktéři letadel tyto hodnoty v jednotkách reálného světa.
Jednou z výhod tohoto přístupu založeného na reálném světě je, že “správná” hodnota pro nastavení letadla může vycházet ze skutečných specifikací letadla, spíše než ladit nějaká čísla v 3D editoru, dokud to nevypadá správně.
Harmonizované výsledky
Jednou z velkých výhod tohoto přístupu je, že všechny prvky, které tvoří simulaci, spolu dobře spolupracují, protože jsou všechny kalibrovány podle stejného standardu – reálného světa. Jak jasná jsou přistávací světla v porovnání se světly na letišti? Jak viditelná jsou světla pro pojíždění, když vyjde slunce? Díky fotometrickému vykreslovacímu jádru jsou odpovědi určeny matematicky a na základě měření, které lze porovnat s reálným životem, takže celá scéna do sebe zapadá.
Díky fotometrickému vykreslování jsme se přiblížili skutečnému životu o další krok – nový renderer X-Plane 12 současně vytváří realistické obrazy a je jednodušší na práci, a to vše díky tomu, že jako vstupy používá reálné hodnoty. Podívejte se na níže uvedené video, kde najdete A/B srovnání osvětlení v X-Plane 11 a X-Plane 12.
Světla, voda, mráz
Rozsviťte to
Alex překalibroval světla dráhy a letiště pro nový fotometrický světelný engine. To podnítilo interní diskusi o tom, jak nejlépe kalibrovat umělé zdroje světla. Určuje autor svítivost žárovky předtím, než se na ni nasadí tónovaný plastový kryt (tento způsob je dobrý, pokud máte specifikace žárovky z internetu), nebo na základě toho, co byste naměřili při testování hotového světla? (Tento způsob odpovídá specifikacím FAA pro letištní světla.)
Poté, co jsme se několikrát vrátili tam a zpět, naše odpověď zní “no, obojí” a nyní máme systém, který to umožňuje, což by mělo vyřešit případy použití jak pro letadla (kde jsou často vlastnosti žárovky známy, protože si můžete vyhledat náhradní díly), tak pro letiště (kde má FAA normy pro konečné výsledky světla).
Něco, co je třeba mít na paměti: městská letiště jsou ve srovnání s okolím poměrně tmavá. V blízkosti přistávací dráhy je jen velmi málo světelných zdrojů, které nejsou přísně kontrolovány z hlediska jasu a směru. Nad letištěm KLAX jsem pravidelně létal v cestovních výškách (dojížděl jsem za prací ze San Diega do San Francisca) a letiště KLAX bylo v moři světel, kterým je povodí Los Angeles, vždycky černé jako mrak; ve výšce 34 000 stop na nás žádná světla dráhy nemíří.
Ben Supnik
Mokrý povrch
Petr a Sidney pracovali na shaderu Povrchů v závislosti na počasí, který na povrchy aplikuje vodu a další efekty počasí. Takto se dynamicky vytváří mokrý povrch, když prší.
Shader je složitý, protože efekt mokrého povrchu se hodně změní, jakmile voda vytvoří skutečnou louži. Když jsem vzal své děti na hodinu plavání, nemohl jsem si nevšimnout užitečných referenčních materiálů všude kolem.
Ben Supnik
Hrubý mokrý materiál – odrazy se mění s úhlem v X-Plane i ve skutečnosti
To, co tam vidíte, je programátorské umění. Programátorské umění je, když si programátoři vytvářejí vlastní soubory s texturami pro testování kódu. V tomto případě Sidney testuje systém odmrazování čelních skel, který používá speciální texturu pro určení vzoru odmrazování. To umožňuje tvůrcům ovládat efekt odmrazování a dosáhnout rychlejšího odmrazování v blízkosti ventilačních otvorů.
Další věc “ze zákulisí”, kterou zde můžete vidět: toto vyskakovací okno je sada interních ovládacích prvků pro testování, ladění a vývoj efektů čelního skla. Části těchto interních ovládacích prvků, které jsou obecně užitečné, se stanou vývojářskými nástroji třetích stran (jako je prohlížeč textur a editor částicového systému v X-Plane 11).
Cessna ve vesemíru
Daniel přepsal shader planety. V X-Plane 12 je voda zpracovávána odděleně od pevniny (aby mohla být trojrozměrná). Nový planetární shader zobrazuje vzdálený pohled na vodu a vzdálený pohled na pevninu zároveň a správně zobrazuje rozptyl atmosféry, který je normálně předpočítáván ve speciální “froxelové cache” pro běžné scenérie.
Pokud jste si nevšimli vzorce, tak je to ten, že všechny screenshoty výtvarného týmu mají tendenci vypadat dostatečně dobře na to, aby mohly být dodány, a screenshoty programátorů mají tendenci být velmi, velmi hloupé. V tomto případě je Cessna ve vesmíru dost hloupá, ale to, co jsme hledali, byly plynulé atmosférické efekty až k horizontu.
Zde je ještě jeden hloupý programátorský screenshot:
Kalibroval jsem světla na přistávací dráze podle Alexovy specifikace a omylem jsem do jednoho z vnitřních ovládacích prvků výtvarného umění zadal navíc 0. Výsledkem byl tento fantastický snímek obrazovky.
Ben Supnik
Co vidíte: billboardy pro prostředí ranveje jsou omylem obrovské a vyplňují celou mapu odrazové kostky. Odrazná spodní strana křídla Cessny zachycuje tato modrá světla a vypadá to jako rave.