Juliusz pisze:Zgadzam się z przedmówcami - wygląda to bardzo dobrze. Choć fajnie by było, gdyby promienie były rzutowane bardziej równolegle. Da się?
Da się, to tylko kwestia przekręcenia światła punktowego pod innym kątem
Juliusz pisze:Masz też może jakieś przykładowe screeny/filmiki z lightmap'owanymi cieniami?
Shadowmapy zastępują stencil shadows w bieżących mapkach, nie wymaga to żadnych nowych parametrów. Jeżeli chcesz skuteczniej kontrolować jakość vs. wydajność, to możesz sobie wrzucić do autoexec.cfg lub próbować w konsoli następujące komendy:
r_shadows 2 (włącza shadow mapy, 1 to stencil shadows)
r_softShadowsQuality 14
r_softShadowsRadius 6
r_shadowMapSize 512 i więcej
Ze światłami objętościowymi jest jeszcze sporo problemów i nie wyglądają tak dobrze jak powinny (z daleka jest całkiem fajnie, z bliska niekoniecznie). Podstawowym problemem jest okropny banding przy kolizji z geometrią i wzdłuż snopu światła.
Nie wiem czy was zanudzać szczegółami technicznymi, ale światła w TDM są trochę dziwne, bo składają się z jakiejś tekstury projekcji, która decyduje o kształcie światła na płaszczyźnie XY, oraz tzw. falloff image, który determinuje jasność pikseli "w pionie", tj. na płaszczyznach XZ i YZ. W przypadku świateł punktowych jest to właśnie wzdłuż snopu światła, ale korzystają z tego również światła "omni". Silnik bardzo ładnie obsługuje tekstury projekcji, a większa rozdzielczość przekłada się na lepszą jakość takiego światełka.
Natomiast w przypadku falloff image już to nie działa. Zasadniczo wszystkie światła w silniku domyślnie korzystają z tekstury o nazwie squarelight1a.tga, która po przybliżeniu wygląda tak:
https://i.postimg.cc/1zmrX4vB/obraz.png
Obrazek ma rozdzielczość 64 x 8 pikseli i jak widzicie to jest zwykły gradient. Ponieważ światło zaczyna się na środku, to wykorzystuje jedynie 32 przejścia gradientu, zamiast 256 (!) czyli maksimum dla obrazków 8-bitowych. Nie wiem czy było to podyktowane wydajnością, ale ta wartość jest póki co zablokowana w silniku. Zastąpienie tej tekstury większą nic nie daje.
Na ten moment programista próbuje użyć jakiegoś blura, żeby to zamaskować, ale wydaje mi się, że to nic nie da przy tak niskiej rozdzielczości tego obrazka. Zobaczymy, dalsze postępy zapewne w tym tygodniu
Natomiast wracając jeszcze do shadow mappingu, IMO istotną funkcją jest wprowadzenie transparency shadow maps. Czyli krótko mówiąc, jeżeli wstawicie sobie płaski model jakiejś kraty czy siatki i ustawicie za nim światło, to otrzymacie coś takiego: