Przezroczystość: Różnice pomiędzy wersjami
(→Fazy renderowania) |
|||
Linia 1: | Linia 1: | ||
'''Przezroczystość''' tekstur w symulatorze jest dość skomplikowanym aspektem. Niniejszy artykuł stara się kompleksowo wyjaśnić zawiłości obsługi przezroczystości. | '''Przezroczystość''' tekstur w symulatorze jest dość skomplikowanym aspektem. Niniejszy artykuł stara się kompleksowo wyjaśnić zawiłości obsługi przezroczystości. | ||
− | == | + | == Tryby renderowania == |
− | + | Istnieją dwa tryby renderowania obiektów: | |
− | * ''' | + | * '''tryb nieprzezroczysty''' - w teym trybie powinny być renderowane tylko te geometrie, które nie wymagają renderowania pikseli przezroczystych. Piksele przezroczyste o wartości alfy mniejszej niż 0.5 są uznawane za przezroczyste, a te o wartości większej - za nieprzezroczyste. |
− | * ''' | + | * '''tryb przezroczysty''' - w tym trybie powinny być renderowane tylko te geometrie, które wymagają renderowania pikseli przezroczystych (np. woda, szyby). |
− | To, w | + | To, w którym trybie renderowany będzie obiekt, zależy od: |
− | * właściwości Opacity (dla submodeli) - wartość 1 oznacza | + | * właściwości Opacity (tylko dla submodeli) - wartość 1 oznacza tryb nieprzezroczysty, wartości mniejsze od 1 - tryb przezroczysty. |
− | * użytego materiału (dla terenu) - jeżeli pierwsza tekstura materiału ma nazwę rozpoczynającą się od znaku ''@''. | + | * użytego materiału (tylko dla trójkątów terenu) - jeżeli pierwsza tekstura materiału ma nazwę rozpoczynającą się od znaku ''@'', to użyty będzie tryb przezroczysty. |
== Progowanie == | == Progowanie == |
Wersja z 12:47, 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.
Tryby renderowania
Istnieją dwa tryby renderowania obiektów:
- tryb nieprzezroczysty - w teym trybie powinny być renderowane tylko te geometrie, które nie wymagają renderowania pikseli przezroczystych. Piksele przezroczyste o wartości alfy mniejszej niż 0.5 są uznawane za przezroczyste, a te o wartości większej - za nieprzezroczyste.
- tryb przezroczysty - w tym trybie powinny być renderowane tylko te geometrie, które wymagają renderowania pikseli przezroczystych (np. woda, szyby).
To, w którym trybie renderowany będzie obiekt, zależy od:
- właściwości Opacity (tylko dla submodeli) - wartość 1 oznacza tryb nieprzezroczysty, wartości mniejsze od 1 - tryb przezroczysty.
- użytego materiału (tylko dla trójkątów terenu) - jeżeli pierwsza tekstura materiału ma nazwę rozpoczynającą się od znaku @, to użyty będzie tryb przezroczysty.
Progowanie
Wartość opacity w materiale oznacza próg renderowania. Jego działanie różni się w zależności od używanej fazy renderowania.
- faza nieprzezroczysta - wyświetlone będą piksele o wartości alfy większej od zadanego progu.
- faza przezroczysta - wyświetlone będą piksele o wartości alfy mniejszej od zadanego progu.
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.
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).
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.