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

Z MaSzyna
Skocz do: nawigacja, szukaj
Linia 12: Linia 12:
 
== Fazy renderowania ==
 
== 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 geometrii odbywa się w dwóch fazach:
 +
* faza przezroczystych
 +
* faza nieprzezroczystych
  
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.
+
Faza renderowania zależy od:
 +
* właściwości Opacity (dla submodeli) - wartość 1 oznacza fazę nieprzezroczystych, wartości mniejsze od 1 - fazę przezroczystych.
 +
* użytego materiału (dla terenu) - jeżeli pierwsza tekstura materiału ma nazwę rozpoczynającą się od znaku ''@''.
 +
 
 +
 
 +
=== Faza przezroczystych ===
 +
Umożliwia renderowanie półprzezroczystości, np. szyb lub wody. Sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana.
 +
 
 +
=== Faza nieprzezroczystych ===
 +
Umożliwia renderowanie tylko całkowitej przezroczystości lub całkowitej nieprzezroczystości. Piksele o przezroczystości mniejszej niż 0.5 staną się przezroczyste, a pozostałe nieprzezroczyste.
  
 
== Progowanie ==
 
== Progowanie ==

Wersja z 12:13, 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.

ARTYKUL W BUDOWIE

Podstawowa wiedza

TO DO - czym jest kanał alfa - czym jest alfa blend - czym jest alfa clip


Fazy renderowania

Renderowanie geometrii odbywa się w dwóch fazach:

  • faza przezroczystych
  • faza nieprzezroczystych

Faza renderowania zależy od:

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


Faza przezroczystych

Umożliwia renderowanie półprzezroczystości, np. szyb lub wody. Sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana.

Faza nieprzezroczystych

Umożliwia renderowanie tylko całkowitej przezroczystości lub całkowitej nieprzezroczystości. Piksele o przezroczystości mniejszej niż 0.5 staną się przezroczyste, a pozostałe nieprzezroczyste.

Progowanie

Wartość opacity w materiale oznacza próg renderowania. Na geometrii nieprzezroczystej (opacity 1) 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.

Alpha threshold.jpg

Kolejność renderowania przezroczystości

Trójkąty w fazie przezroczystych (alfa blend; opacity 0) 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 t3d, ale jego rodzic jest nad planem2 to i tak zostanie namalowany w złej kolejności.

Plany1.png


Sortowanie tak nie boli nowego renderera, ale wyłazi na legacy. Zawsze więc warto swoje dzieło przejrzeć na obu. Do testerów też się to odnosi. Jak gdzieś ginie podświetlenie/szybki, to na 90% ma pomieszane fazy renderowania albo kolejność obiektów w modelu.