Jak mogę stworzyć moduł cieniujący, który „tnie” całą geometrię, renderując jedynie tło usuwania w Unity? Przykład:
To pryzmat w ogromnym białym pokoju w kształcie pudełka. Powierzchnia pryzmatu po prostu renderuje skybox sceny (gwiaździste niebo). Użyłem wielu kamer, co jest dość nieefektywne ... Musi być jakiś sposób tylko z shaderem.
W jaki sposób mogę to zrobić?
Kilka opcji, aby uzyskać pożądany efekt - ale są one kosztowne:
lub
Podejrzewam, że musi istnieć sposób na to, używając / nadużywając również bufora Z - ale prawdopodobnie chcesz przetestować „wielokąty dziurowe” przy użyciu ich prawdziwej Z, a następnie napisać inną Z. Prawdopodobnie możesz użyć wielokrotne przejścia i bufor wzornika - rysowanie otworu 3 razy przy ustawionym stanie renderowania w ten sposób może działać:
Nadal będziesz musiał rysować w określonej kolejności - najpierw środowisko, potem dziury, a na końcu skybox.
źródło