Przezroczystość: Różnice pomiędzy wersjami
(→Progowanie) |
|||
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. | ||
− | |||
− | |||
Linia 10: | Linia 8: | ||
Renderowanie odbywa się w dwóch przebiegach. Parametr materiału opacity definiuje, czy dany obiekt będzie renderowany w przebiegu przezroczystych opacity: 0. Wtedy wyświetlane są jego półprzezroczystości, ale sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana. Dla opacity: 100 przezroczystość ucinana jest do binarnej (w najnowszych exe dla alfy 50%) i nie ma problemu z sortowaniem. | Renderowanie odbywa się w dwóch przebiegach. Parametr materiału opacity definiuje, czy dany obiekt będzie renderowany w przebiegu przezroczystych opacity: 0. Wtedy wyświetlane są jego półprzezroczystości, ale sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana. Dla opacity: 100 przezroczystość ucinana jest do binarnej (w najnowszych exe dla alfy 50%) i nie ma problemu z sortowaniem. | ||
− | == | + | == Progowanie == |
+ | Wartość opacity w materiale oznacza próg renderowania. Na geometrii nieprzezroczystej (opacity 100) wyświetlone będą piksele o wartości alfy większej od zadanego progu. Na geometrii przezroczystej (opacity 0) będą renderowane piksele o wartości alfy mniejszej od zadanego progu. | ||
+ | == Kolejność renderowania przezroczystości === | ||
+ | Trójkąty w fazie przezroczystych (alfa blend; opacity 0) 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 t3d, ale jego rodzic jest nad planem2 to i tak zostanie namalowany w złej kolejności. | |
− |
Wersja z 23:56, 6 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 obiektów (w tym przypadku submodeli i terenu) może odbywać się w fazie nieprzezroczystych lub fazie przezroczystych. Odpowiednia konfiguracja fazy renderowania zapewnia prawidłowe wyświetlanie przezroczystych tekstur, dlatego kluczowe jest ich zrozumienie na samym początku.
Renderowanie odbywa się w dwóch przebiegach. Parametr materiału opacity definiuje, czy dany obiekt będzie renderowany w przebiegu przezroczystych opacity: 0. Wtedy wyświetlane są jego półprzezroczystości, ale sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana. Dla opacity: 100 przezroczystość ucinana jest do binarnej (w najnowszych exe dla alfy 50%) i nie ma problemu z sortowaniem.
Progowanie
Wartość opacity w materiale oznacza próg renderowania. Na geometrii nieprzezroczystej (opacity 100) wyświetlone będą piksele o wartości alfy większej od zadanego progu. Na geometrii przezroczystej (opacity 0) będą renderowane piksele o wartości alfy mniejszej od zadanego progu.
Kolejność renderowania przezroczystości =
Trójkąty w fazie przezroczystych (alfa blend; opacity 0) 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 t3d, ale jego rodzic jest nad planem2 to i tak zostanie namalowany w złej kolejności.