Stínování v Open Rails - aneb využít engine OR naplno

Icik

Pomocník strojvedoucího
Kdo chce mít kvalitnější stíny a hlavně více stínů v OR MonoGame, ať zkusí úpravu, na kterou jsem přišel náhodou. Jestli funguje pod standardním OR, to jsem nezkoušel. Na výkon nemá vliv.
Obrázek vlevo je bez úpravy a vpravo s úpravou. Stíny jsou výraznější, je jich více a mapují objekty kolem sebe. Všiměte si horního krytu lampy - bez úpravy jen šedivá nevýrazná a s úpravou vidíme stínování.

V OR adresáři Content najděte soubor ShadowMap.fx. Tam najděte 2 řádky Out.TexCoord_Depth.z = Out.Position.z;
Změňte je na Out.TexCoord_Depth.z = Out.Position.z - 0.001; a uložte a je to.

1.jpg
 

Dan J.

Strojvedoucí
Tak tohle vyzkouším velmi rád, vypadá to skvěle a jestli to nemá vliv ny výkon, skvělá vychytávka.
 

Dan J.

Strojvedoucí
Do regitrů nelezu, nehrabu se ve věcech, kterým nerozumím. :) Nejsem programátor a servis PC mi dělá kámoš, co se tím živí. Ale spíš by mne zajímalo jestli nelze ošéfovat mizení stínů (viz. video) a zdá se mi, že teď OR vykreslije i zvláštně, neboli zvýrazňuje víc chyby stínování na trati (viz. obrázek).
paskov stíny.jpg
 

Icik

Pomocník strojvedoucího
Stíny u tebe nejsou tolik tvarově výrazné, protože máš nastaveno nízké rozlišení stínové mapy. To je ten parametr v registrech ShadowMapResolution.
Musí být aspoň na hodnotě 4096. To se mi zdá jako kompromis mezi kvalitou a velikostí mapy, protože čím vyšší, tím je to pro HW náročnější na zpracování.
To mizení dělají zřejmě LOD-y té stínové mapy. Zatím nevím, co je určuje. Bude to něco přímo v kódu.
 

Dan J.

Strojvedoucí
Ahoj Icik, zeptám se tedty jako totální lajk, to je taky v tm souboru, nebo jak se k těm souborům co jsou popsány výš dostanu. :)
Dan
 

Icik

Pomocník strojvedoucího
Postup je zde:

1. spustit přes nabídku Start ve Windows aplikaci regedit.exe
2. najít pod HKEY_CURRENT_USER - Software -OpenRails složku "ORTS"
3. stisknout pravé tlačítko myši a vybrat z menu Nový - Hodnota QWORD (64bitová) a tím se vytvoří nová hodnota
4. novou hodnotu přejmenovat na "ShadowMapResolution"
5. tuto hodnotu dvojklikem změnit na Údaj hodnoty na 1000 (to bude v desítkové soustavě 4096)
 

Icik

Pomocník strojvedoucího
Zkouším různé kombinace a nejlepší stíny bez dramatického dopadu na výkon je v tomto nastavení:

ShadowMapCount 4 (velice důležité, jinak stíny budou jak obdélníčky)
ShadowMapBlur 1 (rozmazává okraj stínů a tudíž vytváří dojem "měkkých" okrajů kolem stínů)
ShadowMapResolution 1000 (to bude v desítkové soustavě 4096, velice důležité pro detaily stínů)
ShadowMapDistance 500 (velice důležitá hodnota, jen při této hodnotě jsou stíny nejkomplexnější))

Jiné hodnoty dávají horší výsledky, co se týče kvality.
 

Venny

Signalista
Iciku, díky za nové postřehy. ;)
Nelze se ovšem nezeptat, zda je reálné, aby se změny objevily v některé další oficiálně vydané verzi MG-OR? Upravovat znovu a znovu každou další verzi včetně jiných vychytávek a úprav (jejichž počet roste) je poněkud nepohodlné. I pro ty, kteří jsou schopni tyto úpravy realizovat.
 

Icik

Pomocník strojvedoucího
Pro ty, co neví jak vytvořit zápisy v registrech, jsem vytvořil jednoduchý automatický spouštěč. Stačí ho jen spustit a registr se sám upraví. Podotýkám, že je to vytvořeno pod WINDOWS 10. Starší nemám otestováné.

https://uloz.to/!LkJ9miTX5SSC/or-monogame-reg

Soubor s upraveným "ShadowMap.fx" si můžete každý zálohovat a při vydání nové verze tak znovu přepsat. Není to oficiální úprava a je to jen pro testování. Pokusím se to navrhnout vývojářům, aby to začlenili. Ale to nezaručuju. Zatím jen pro testování.
OR je neustále ve vývoji a do té doby budou pořád nějaké novinky.
 
Nahoře