Czym są „przestrzeń świata” i „przestrzeń oka” w rozwoju gier?

16

Czytam książkę o koncepcjach 3D i OpenGL. Książka zawsze mówi o przestrzeni światowej , przestrzeni oka , i tak dalej.

  • Czym dokładnie jest świat wewnątrz ekranu monitora komputera?

  • Jaka jest przestrzeń świata?

  • Co to jest przestrzeń oka? Czy jest to synonim projekcji?

gamdevNoobie
źródło

Odpowiedzi:

25

Przed zrozumieniem, czym jest świat lub przestrzeń oczu, czym jest przestrzeń?

W sensie abstrakcyjnym przestrzeń geometryczna (np. Przestrzeń euklidesowa) jest nieograniczonym zasięgiem, w którym obiekty zwykle istnieją. Przestrzeń określa podstawowe właściwości, które powinny spełniać obiekty mieszkające w tej przestrzeni. Na przykład w przestrzeni euklidesowej odległość określa się jako Sqrt( vector dot product with itself).

Większość ludzi ma tendencję do mieszania definicji przestrzeni i układu współrzędnych. Przestrzeń jako przestrzeń euklidesowa określa właściwości, ale nie definiuje układu współrzędnych. Powiedziałbym, że „przestrzeń oka” jest lepiej nazywana „współrzędną oka”.

W grafice komputerowej prawie wyłącznie zajmujemy się przestrzenią euklidesową. Kiedy zdefiniujesz wierzchołek (X, Y, Z) w przestrzeni euklidesowej, nie ma to dla nas żadnego znaczenia.

Bardziej namacalną definicją byłoby zdefiniowanie go w odniesieniu do jakiegoś układu współrzędnych. Na przykład wierzchołek (X, Y, Z) jest związany ze współrzędnymi oka. Więc jeśli wierzchołek = (0,2,3) względem współrzędnych oka. oznacza to, że ten wierzchołek to:

  • 0 w kierunku X od pozycji X oka.
  • 2 w kierunku Y od pozycji Y oka.
  • 3 w kierunku Z od pozycji Z oka.
  • A odległość wierzchołka od oka wynosi sqrt (0 ^ 2 + 2 ^ 2 + 3 ^ 2) = jednostka sqrt (13).

Ale czym są współrzędne oczu i jak definiujemy układ współrzędnych?

Definiujemy układ współrzędnych, zapewniając trzy podstawy ortogonalne wektory (czytaj: długość jednostkowa i prostopadła), które przypominają orientację oraz pozycję (translację). wprowadź opis zdjęcia tutaj

Więc jeśli zdefiniowano kamerę w openGL (zauważ, że jest to względne względem współrzędnych świata):

 - Position (0,3,10)
 - Up       (0,1,0)
 - Forward  (0,0,-1)
 - Right    (1,0,0)

Oznacza to, że widz ustawia się na (0,3,10) od świata (0,0,0), a jego prawa strona jest wyrównana do osi X świata, a jego przód jest odwrócony względem świata Z, a jego góra jest wyrównana na świat Y.

wprowadź opis zdjęcia tutaj

Ale zbyt dużo mówiłeś o współrzędnych oka, jakie są współrzędne świata?

Współrzędne świata to tylko stały nadrzędny układ współrzędnych. Współrzędne oka same powinny być względem czegoś. Jest to globalny układ współrzędnych, do którego wszystko jest zdefiniowane względem.

Współrzędna świata ma stałą i = (1,0,0) w kierunku X, j = (0,1,0) w kierunku Y, k = (0,0,1) w kierunku Z. Są to wektory, które definiują kartezjański układ współrzędnych.

Ale to nie ma sensu! Do jakich współrzędnych odnoszą się współrzędne świata?

Powiedziałbym, że jest względny względem siebie, w rzeczywistości byłby to środek wszechświata (ale to zbyt uproszczone).

Ale w bardziej praktycznym sensie powiedziałbym, że w grafice komputerowej wygodnie jest zdefiniować przestrzeń świata jako centrum wszechświata (świata gry), abyśmy mogli sobie wyobrazić, jak rzeczy mogą się ze sobą odnosić.

concept3d
źródło