Uważam, że powszechnym rozwiązaniem jest podzielenie transformacji kamery używanej do rzutowania siatki z transformacji kamery używanej do renderowania siatki. W perspektywach zbliżonych do góry dwie kamery pokrywają się, ale gdy kamera zbliża się do perspektywy poziomej, kamera projekcyjna odchyla się i stara się zachować minimalne nachylenie, tzn. Unosi się gdzieś nad kamerą i lekko patrzy w dół.
Problem polega na tym, aby pole widzenia kamery projekcyjnej zawsze pokrywało obszar sceny widziany z kamery renderującej. Nie mam pod ręką zasobu, który wyjaśniałby, jak obliczyć odpowiednie transformacje, i może być żmudne wyprowadzanie go ręcznie.
Innym rozwiązaniem jest pobranie zestawu narzędzi do przetwarzania sygnału: artefakty widoczne na obrazie są zasadniczo aliasingowe, spowodowane niewystarczającym próbkowaniem pola wysokości fali przez rzutowaną siatkę. Dlatego jednym z rozwiązań jest odpowiednie filtrowanie pola wysokości, w zależności od rzutowanego obszaru komórki siatki. Sądzę, że jest to wykorzystywane do renderowania oceanów offline i zasadniczo zapewnia, że fale na horyzoncie będą płaskie. Nie jestem jednak pewien, czy jest to wykonalne w renderowaniu w czasie rzeczywistym, ponieważ potrzebujesz wysokiej jakości filtrowania anizotropowego, aby takie podejście wyglądało rozsądnie.
Możesz być realistyczny i realistyczny. Sekret polega na zmianie reprezentacji za każdym razem, gdy informacje docierają do skali Shannona-Nyquista (tj. siatki): od geometrii do normalnych map po modele cieniowania. Ten artykuł jest dla Ciebie: http://maverick.inria.fr/Publications/2010/BNH10/index.php (zobacz także filmy z Yoube)
źródło
Niektóre programy, takie jak Maya, rozwiązują ten problem, używając biegunowego (lub faktycznie kartezjańskiego, który zmienia biegunowo na odległość) w podobny sposób, jak siatka wyśrodkowana na pozycji kamery. Ta konfiguracja dodaje więcej szczegółów tam, gdzie liczy się najbardziej. Następnie polegają one na normalnym przetwarzaniu shaderów w dalszych zakresach. Jest miejsce na wyjazd na improwizację. Zmodyfikujesz to podejście nieco na zimno i uzyskasz dowolny inny kształt, który zwiększy gęstość siatki w kierunku kamery. Zaletą tego jest to, że możesz rozciągnąć efekt aż do horyzontu, nie martwiąc się o szew.
W tym przypadku sztuczką, aby nie doprowadzić do pomieszania się przemieszczenia, jest stopniowe zmniejszanie przemieszczenia w miarę oddalania się. Następnie postępujesz zgodnie z normalną modyfikacją modułu cieniującego piksele. Jest to łatwiejsze do filtrowania niż filtrowanie dokładnej krawędzi shiluette. Także jeśli widzisz to z daleka, twoje wawrzy są prawdopodobnie wystarczająco płaskie.
źródło
Technika, o której wspominał Benedikt, została wyjaśniona w części 2.4.1 niniejszej pracy.
http://fileadmin.cs.lth.se/graphics/theses/projects/projgrid/projgrid-lq.pdf
Wdrożenie tego powinno rozwiązać Twój problem.
źródło