Przezroczystość: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Kolejność renderowania przezroczystości)
Linia 19: Linia 19:
  
 
== Kolejność renderowania przezroczystości ==
 
== Kolejność renderowania przezroczystości ==
 +
W przypadku fazy nieprzezroczystej mogą wystąpić błędy renderowania, objawiające się wyświetlaniem obiektów dalszych od obserwatora przed obiektami stojącymi bliżej niego.
 +
 +
Błędy sortowania nie są aż tak częste na nowym rendererze, ale uwidaczniają się na starym. Zawsze więc warto testować swój model na obu z nich. Jeżeli ginie gdzieś podświetlenie/szyby lub obiekty wyświetlają się w błędnej kolejności, to prawdopodobnie ma pomieszane fazy renderowania albo kolejność obiektów w modelu.
 +
 
Trójkąty w fazie przezroczystych muszą być rysowane od najdalszych kamery do najbliższych.
 
Trójkąty w fazie przezroczystych muszą być rysowane od najdalszych kamery do najbliższych.
  
Linia 30: Linia 34:
  
 
[[Plik:Plany1.png|400px]]
 
[[Plik:Plany1.png|400px]]
 
Błędy sortowania nie są aż tak częste na nowym rendererze, ale uwidaczniają się na starym. Zawsze więc warto testować swój model na obu rendererach. Jeżeli ginie gdzieś podświetlenie/szyby, to na 90% ma pomieszane fazy renderowania albo kolejność obiektów w modelu.
 

Wersja z 13:26, 7 gru 2022

Przezroczystość tekstur w symulatorze jest dość skomplikowanym aspektem. Niniejszy artykuł stara się kompleksowo wyjaśnić zawiłości obsługi przezroczystości.

Fazy renderowania

Renderowanie geometrii odbywa się w dwóch fazach:

  • faza nieprzezroczysta - renderowanie tylko całkowitej przezroczystości lub całkowitej nieprzezroczystości. Piksele o przezroczystości mniejszej niż 0.5 są uznawane za przezroczyste, a pozostałe - za nieprzezroczyste.
  • faza przezroczysta - renderowanie półprzezroczystości, np. szyb lub wody.

To, w której fazie będzie renderowana geometria, zależy od:

  • właściwości Opacity (dla submodeli) - wartość 1 oznacza fazę nieprzezroczystą, wartości mniejsze od 1 - fazę przezroczystą.
  • użytego materiału (dla terenu) - jeżeli pierwsza tekstura materiału ma nazwę rozpoczynającą się od znaku @.

Progowanie

Wartość opacity w materiale oznacza próg renderowania. Jego działanie różni się od fazy renderowania.

  • faza nieprzezroczysta - wyświetlone będą piksele o wartości alfy większej od zadanego progu.
  • faza przezroczysta - będą renderowane piksele o wartości alfy mniejszej od zadanego progu.

Alpha threshold.jpg

Kolejność renderowania przezroczystości

W przypadku fazy nieprzezroczystej mogą wystąpić błędy renderowania, objawiające się wyświetlaniem obiektów dalszych od obserwatora przed obiektami stojącymi bliżej niego.

Błędy sortowania nie są aż tak częste na nowym rendererze, ale uwidaczniają się na starym. Zawsze więc warto testować swój model na obu z nich. Jeżeli ginie gdzieś podświetlenie/szyby lub obiekty wyświetlają się w błędnej kolejności, to prawdopodobnie ma pomieszane fazy renderowania albo kolejność obiektów w modelu.

Trójkąty w fazie przezroczystych muszą być rysowane od najdalszych kamery do najbliższych.

Plany2.png

Najdalsze od kamery muszą być u dołu pliku t3d, najbliższe kamery u góry. Tyczy się to zarówno trójkątów w ramach jednego submodelu (szyby wiaty, hali dworca, itp) jak i różnych submodeli (podświetlenia i szybki mierników w kabinie).

Plany3.png

Dzieci niższego stopnia są rysowane po rodzicu. Więc jeśli plan3 znajduje się technicznie pod planem2 w pliku T3D, ale jego rodzic jest nad planem2 to i tak zostanie namalowany w złej kolejności.

Plany1.png