Łatwo jest stworzyć pojedyncze frustum, które otacza obie pojedyncze frusty oka, jak pokazano na schemacie stworzonym przez Cass Everitt z Oculus. Trzeba tylko nieco umieścić wierzchołek tego skórka między oczami i za nimi. Możesz także zwiększyć odległość w pobliżu płaszczyzny, aby dopasować ją do oryginalnej płaszczyzny w pobliżu oka oka.
Takie frustum zawiera trochę miejsca, które nie było w połączeniu dwóch oryginalnych frust. Między obiema oczami jest poziomo mała objętość; schemat nie pokazuje również wymiaru pionowego, ale pociągnięcie wierzchołka skorupy do tyłu powoduje, że zawiera ona trochę miejsca powyżej i poniżej oryginalnej frusty. Jednak dla praktycznych celów uboju prawdopodobnie nie ma to znaczenia. Ubijanie frustum i tak jest zwykle konserwatywne, a dodatkowa przestrzeń ma zaledwie kilka centymetrów grubości.
Możliwe jest również po prostu przylgnięcie do pierwotnej płaszczyzny górnej i dolnej płaszczyzny ściętej (które są wspólne dla oczu) wraz z zewnętrznymi płaszczyznami bocznymi. Płaszczyzny te nie tworzą frustum, technicznie, ale jeśli użyje się „zwykłego” algorytmu tłumienia, który testuje na jednej płaszczyźnie naraz, algorytm z radością będzie działał na każdym zestawie płaszczyzn, który chcesz mu dać.
Udostępnianie wygładzania fragmentów, doboru LOD itp. Między oczami, zamiast ponownego wykonywania tego dwukrotnie w każdej klatce, to świetny sposób na optymalizację kosztów procesora renderowania stereo. Jest to również warunkiem wstępnym, jeśli chcesz użyć metody renderowania, która przyciąga oboje oczu w jednym przejściu, takiej jak instancja renderowania stereo .
W razie potrzeby uogólniłem wyniki Everitt.
Jako bonus, sposób na wydobycie left0 / right0 z matryc perspektywy oka:
Jeśli masz większy rząd. transponuj dla kolumny głównej. por. tę odpowiedź
źródło
Zachowaj ostrożność, stosowanie pojedynczego fragmentu do wybijania działa tylko wtedy, gdy łączne pole widzenia oczu jest mniejsze niż 180 stopni. Istnieją teraz zestawy VR z większym polem widzenia około 200 stopni, tj. Pimax 5k + i StarVR . Niemożliwe jest zbudowanie tradycyjnej matrycy widoku lub matrycy pojedynczej projekcji dla pola widzenia powyżej 180 stopni.
Te zestawy słuchawkowe używają ekranów ustawionych pod kątem, więc płaszczyzny projekcji i wektory przednie w przestrzeni widoku nie są równoległe. Równania z innych odpowiedzi tutaj zakładają, że są one równoległe i przyniosą niepoprawne wyniki, gdy to założenie jest błędne.
Pojedynczy widok widoku łączonego może być nadal użyteczny, ale Twój kod powinien być przygotowany do radzenia sobie z przypadkami, w których nie można go skonstruować, aby zapewnić, że będzie on w przyszłości odpowiedni. Alternatywnie, rozważ wykonanie wyrównywania na widok oka lub przełącz się na wyrównywanie kątowe, które może wyrażać pole widzenia większe niż 180 stopni.
źródło