Ocena wątku:
  • 0 głosów - średnia: 0
ProceduralObject 1.7.2 - problem z przenikaniem warstw
#1
Witam was, czy ktoś mógłby mi wyjaśnić na czym polega problem że podczas nakładania warstw  (przykład droga i chodnik)
warstwy sie przenikają w zaleźności od ustawiania kamery 
podaje poniżej przykład

raz tak   https://prnt.sc/19k2080

a raz tak   https://prnt.sc/19k3ba2


wystarczy że lekko ruszę kółkiem aby przybliżyć lub oddalić obraz lub zmienie kąt (choć nie muszę) kamery


i nie jest to kwestia dystansu renderowania gdyż to już sprawdzałem




będzę wdzięczny za pomoc
  Odpowiedz
#2
W skrócie, bufor głębi (z-buffer) ma zbyt małą rozdzielczość. Więcej info: https://en.wikipedia.org/wiki/Z-fighting
  Odpowiedz
#3
Witaj, dzięki za info, jak rozumiem jest to problem ogólny.
Ale powiedz, czy na tym konkretnym przykładzie w tej konkretnej grze jest jakaś metoda która pozwala rozwiązać ten problem ?
Szukałem sporo po YT tutoriali ale nigdzie dokładnie nie zobaczyłem jak to zniwelować,
na jednym tutorialu Akuras jeden z bardziej znanych paiterów w tym filmiku
https://youtu.be/9EOvCctxFXU?t=321
liznął temat, pokazując problem i wspomniał że do tego wróci, ale nie wrócił Smile
  Odpowiedz
#4
W normalnych warunkach można byłoby pokombinować z wysokością obiektów, problem w tym że to są naklejki (decale).

W przypadku normalnych obiektów, powiedzmy, że jest nim sześcian/kostka, tekstury są renderowane na zewnętrznych ściankach (najpopularniejsze użycie). 

Jeśli chodzi o decale/naklejki to spawa jest bardziej skomplikowana. 
Aby wyrenderować teksturę naklejki gra generuje niewidzialny sześcian o niewielkiej wysokości i tekstura jest renderowana wewnątrz, rzutem z góry, na każdym obiekcie który "przecina" wnętrze tego niewidzialnego sześcianu - używany jest bufor głębi - tekstura zawierająca informacje o odległości nieprzezroczystych obiektów do "oka kamery". 

Reszta jest nieźle wytłumaczona w tym filmiku z linku.

Jeśli chodzi o fix to niewiele można zrobić, no chyba, że ktoś zamierza poprawić shader - choć właściwie to trzeba byłoby napisać nowy, bo nie da się ich dekompilować a kodu źródłowego nie ma.
  Odpowiedz
#5
Wiem że Decal to jest sześcian a nie płaska tekstura, właśnie akuras to dokładnie wyjaśnił tam.
Próbowałem zmniejszać głębe za pomocą procedural object ale niewiele to daje zresztą jak widzisz to raz jest dobrze wyświetlane a raz źle, niezależnie jak wypłaszczę głębie decala.

no nic będę jeszcze kombinował jak uda mi się coś wykombinować to dam znać, chyba że ktoś jeszcze zna jakiś trick na to który się sprawdza
  Odpowiedz

Witaj na Cities Skylines PL!
Aby dodać odpowiedź zaloguj się, lub zarejestruj nowe konto

Jedynie zalogowani użytkownicy mogą odpowiadać w wątkach

Szybka rejestracja

Możesz także skorzystać z opcji szybkiej rejestracji za pomocą facebooka.



Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości