Przezroczystość
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.
Kolejność renderowania przezroczystości
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.
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.