Symulator EU07 (i nie tylko) > Na warsztacie
Exe - konwersja na C++
Milek7:
nowe exe: https://ci.appveyor.com/project/Milek7/maszyna/build/30/artifacts
ściągnąć odpowiednie exe i paczkę z shaderami
Jest nowy fajowy ficzer, CIENIE. Konfiguruje się je parametrem shadowtune:
--- Kod: ---shadowtune <rozdzielczość> <promień projekcji> <głębokość projekcji> <odległość od obserwatora>
--- Koniec kodu ---
Gdzie: <rozdzielczość> - szerokość i wysokość tekstury na jaką renderuje się shadowmapa. żeby miało przyzwoitą jakość to ja sobie ustawiam 4096. (to zajmuje sporo vramu, np. 2048 to 16MiB, 4096 to 64MiB, 8192 to 256MiB)
<promień projekcji> - jak szeroka ma być projekcja przez którą rzucane jest światło. poza obszarem projekcji cienie nie są rzucane. oczywiście żeby zwiększyć projekcję bez utraty jakości należy też zwiększyć rozdzielczość shadowmapy. ja ustawiłem sobie na 250
<głębokość projekcji> - tutaj można sobie ustawić dużo, jednym ograniczeniem jest dokładność shadowmapy czyli 32bitowego floata. jeżeli będzie za mało to obiekty które są niżej nie będą rzucać cienia, widoczne przy wylatywaniu kamerą w górę. ja ustawiam na 400.
<odległość od obserwatora> - odległość punktu projekcji światła od obserwatora w kierunku słońca. jeżeli jest za mało to obiekty które są niżej nie będą rzucać cienia, a przy wysokich kątach padania światła projekcja będzie się wrzynać w teren i ograniczać efektywny promień projekcji. żeby miało sens to musi być mniejsze od głębokości projekcji, ja ustawiam na 300
Nie zmieniałem nic innego w rendererze, więc takie bugi jakie były to zostały. Dodany jest tylko prosty opisany powyżej shadowmapping z wieloma wadami:
- kabina nie rzuca cienia (na to będzie trzeba osobną shadowmapę, z małym zasięgiem żeby była dobra jakość i bez PCF żeby nie było rozmycia)
- tylko oświetlenie dzienne rzuca cień, światła lokomotywy bez zmian
- nie ma CSM, więc żeby była dobra jakość z bliska to trzeba podkręcać rozdzielczość shadowmapy, jednocześnie niepotrzebnie zwiększając rozdzielczość gdzieś heń daleko.
- półprzeźroczyste tekstury zachowują się tak jakby były całkowicie przeźroczyste (do tego trzeba dorzucić drugi kanał do shadowmapy, nie wiem czy jest taka potrzeba?)
Jak ktoś chce to niech się bawi, a ja robię sobię przerwę na dwa tygodnie, później wrócę do poprawiania cieni i naprawy renderera.
Balaclava:
Bardzo pozytywne wrażenia wizualne. Modele są ładniej oświetlone i prezentują się lepiej, niż bez shaderów, ale cień przez nie rzucany jest nieco przesunięty względem nich. Do ini wklepałem takie ustawienia, jakie podałeś.
Milek7:
To kwestia ustawienia biasa, jest w shaders/blinnphong.frag linia 45:
--- Kod: ---float bias = clamp(0.0025*tan(acos(clamp(dot(f_normal, -lights[0].dir), 0.0, 1.0))), 0, 0.01);
--- Koniec kodu ---
Spróbuj zmniejszyć to 0.0025, np. do 0.0005, ale jak przecholujesz to zaczną się robić takie dziwne wzorki.
PS: jak już jesteśmy przy shaderach, to jakby ktoś chciał mieć mniej rozmazane cienie to można zakomentować linie 51-56 i odkomentować 48. Tylko wtedy przy niskich rozdzielczościach shadowmapy będzie widać teksele.
tmj:
Jesli znajdziesz chwile, zobacz czy efekt nie bedzie lepszy jesli przy liczeniu shadowmapy renderer wywola tylko funkcje Render() a odpusci sobie Render_Alpha() Do generowania cieni powinien wystarczyc alpha test w fazie nieprzezroczystych, i raz ze powinno byc troche szybciej, a dwa moze znikna dziwne element przy niektorych starych wagonach (wyglada to jakby plaszczyzny "sztucznych cieni" wcinaly sie tam do testu)
edit:
--- Cytat: DjSon231 w 03 Lipca 2017, 15:06:29 ---Włączam najnowsze exe od @tmj z bibliotekami i wyłącza się na pythonie.
Patch 16.08, sceneria testowa.
--- Koniec cytatu ---
A jak to wyglada na wersji 32bit i/lub na starszych kompilacjach? Uruchamia sie, czy tez wylacza? Bo moze cos sie sypnelo z instalacja Pythona jakos bardziej uniwersalnie...
Milek7:
A w Render_Alpha to nie są przypadkiem renderowane tekturowe drzewka i ściany lasów?
Nawigacja
[#] Następna strona
Idź do wersji pełnej