Do jakich celów używamy macierzy rzutowania widoku modelu? Dlaczego shadery wymagają macierzy rzutowania widoku modelu?
Do jakich celów używamy macierzy rzutowania widoku modelu? Dlaczego shadery wymagają macierzy rzutowania widoku modelu?
Odpowiedzi:
Macierze modelu, widoku i rzutowania to trzy oddzielne macierze. Modeluj mapy z lokalnej przestrzeni współrzędnych obiektu do przestrzeni świata, widok z przestrzeni świata do przestrzeni kamery, projekcja z kamery na ekran.
Jeśli skomponujesz wszystkie trzy, możesz użyć jednego wyniku do odwzorowania całej drogi od przestrzeni obiektu do przestrzeni ekranu, dzięki czemu będziesz w stanie ustalić, co musisz przekazać do następnego etapu programowalnego potoku z nadchodzących pozycji wierzchołków.
W starych potokach o stałej funkcjonalności stosowałeś model i widok razem, a następnie opracowywałeś oświetlenie używając innego wyniku uzyskanego z nich (z pewnymi poprawkami, aby np. Normalne nadal miały długość jednostkową, nawet jeśli zastosowałeś skalowanie do obiektu ), a następnie zastosuj rzut. Widać to odzwierciedlone w OpenGL, który nigdy nie oddziela modelu i nie wyświetla macierzy - zachowując je jako pojedynczy stos macierzy widoku modelu. Dlatego czasami widzisz to odzwierciedlone w shaderach.
Tak więc: skomponowana macierz projekcji widoku modelu jest często używana przez shadery do mapowania z wierzchołków załadowanych dla każdego modelu na ekran. Nie jest to wymagane, jest wiele sposobów osiągnięcia tego samego, jest to zwyczajne, ponieważ umożliwia wszystkie możliwe transformacje liniowe. Z tego powodu słabiej skomponowana wersja była również normą w starym świecie stałych rurociągów.
Ponieważ macierze są wygodne. Macierze pomagają przekształcić lokalizacje / kierunki w odniesieniu do różnych przestrzeni (przestrzeń można zdefiniować za pomocą 3 prostopadłych osi i początku).
Oto przykład z książki określonej przez @ legends2k w komentarzach.
Mieszkańcy Kartezji posługują się mapą swojego miasta, której początki są dość sensownie wyśrodkowane w centrum miasta i osie skierowane wzdłuż kardynalnych punktów kompasu. Mieszkańcy Dysleksji używają mapy swojego miasta, na której współrzędne są wyśrodkowane w dowolnym punkcie, a osie biegną w dowolnych kierunkach, co prawdopodobnie wydawało się wówczas dobrym pomysłem. Mieszkańcy obu miast są bardzo zadowoleni ze swoich map, ale stanowy inżynier ds. Transportu, któremu powierzono zadanie przygotowania budżetu na pierwszą autostradę między Kartezją a Dysleksją, potrzebuje mapy ze szczegółami obu miast, która w związku z tym wprowadza trzecią współrzędną system, który jest lepszy od niego, choć niekoniecznie od kogokolwiek innego.
Oto kolejny przykład,
Załóżmy, że w grze stworzyłeś samochód z pozycjami jego wierzchołków przy użyciu współrzędnych świata. Przypuśćmy, że musisz użyć tego samego samochodu w innej grze w zupełnie innym świecie, musisz ponownie zdefiniować pozycje, a obliczenia będą skomplikowane. Dzieje się tak, ponieważ ponownie musisz obliczyć pozycje okien, maski, reflektorów, kół itp. W samochodzie w odniesieniu do nowego świata.
Obejrzyj ten film, aby zrozumieć koncepcje modelu, widoku i projekcji. (wysoce rekomendowane)
Następnie zobacz to, aby zrozumieć, w jaki sposób wierzchołki świata są reprezentowane jako Matryce i jak są przekształcane.