Coordinate spaces

Figyelem! Ez az oldal nem frissül. Új verzió: shatalov.su

    További leckék
  1. A koordináta terek átalakítása. Go.
  2. Virtuális kamera és perspektivikus vetítés. Go.

Mielőtt elkezdené a grafikák rajzolását a képernyőn, meg kell fontolnia, hogy a grafikus objektumok belülről legyenek bemutatva.

A DirectX több koordinátat használ.

A világ koordinálja a világűr (Világ tér)

A világ koordináta térben minden grafikai objektum leírása. Ebben a térben lehet "látni" az egész virtuális világot. Ezt a teret globálisnak vagy univerzálisnak is nevezik.

Miért nem tudunk egyetlen térre - a világtérre korlátozni? Az a tény, hogy több helyhasználat nagymértékben leegyszerűsíti az életet.

A naprendszerben a bolygók pályáinak kiszámításának kényelmére egy heliocentrikus koordinátarendszert használnak (a központ a Nap). De a Hold mozgásának pályája a Föld körül sokkal könnyebb elképzelni, nem a heliocentrikus, hanem a geocentrikus (center-to-earth) koordinátarendszerben. Itt egy példát látunk két koordináta-rendszer - a világ és az objektum - használatáról. Ugyanez történik a számítógépes játékokban.

Itt érdemes megjegyezni, hogy a hely relatív. Az objektum helyét különböző koordináta-térben lehet leírni: a Hold pályája a geocentrikus és a heliocentrikus rendszerben is megjeleníthető, de az elsőben könnyebb elvégezni.

Tekintsünk egy képet, amelyen a világ koordinált helyét ábrázoltuk. A térben van egy tárgy - háromszög, és egy kamera, amely a háromszög felé mutat. Mind a kamera, mind a háromszög saját koordináta-terekkel rendelkeznek.

Coordinate spaces

A második kép ugyanazt a jelenetet mutatja, csak a felső nézetet. Itt a háromszög egy kötőjel. Minden későbbi képen az oldalnézet (x, y tengely) vagy a felülnézet (x, z tengely) használható.

Tárgyterület

Az objektum koordináta térben található a modell (objektum).

Az objektumterület kezdetét úgy kell elrendezni, hogy célszerűbb legyen egy objektum létrehozása. Néha az objektum tér kezdete megegyezik a modell tömegközéppontjával.

A képen látható az x1, y1 tengelyek által leírt háromszög térképe.

Coordinate spaces

Ha az objektum összetett, akkor további szóközök kerülnek bevezetésre - az animáció egyszerűsítése érdekében. De még mindig messze vagyunk.

Inerciális tér (inerciális tér)

Bemutatunk egy további koordinátatéret-inerciális helyet. Nem használják a valóságban, de lehetővé teszi számunkra, hogy egyszerűsítsük azt a felfogást, ahogyan a koordinátaközök kölcsönhatásba lépnek. Nézzük meg a képet:

Coordinate spaces

Itt mutatjuk be: objektum (x1, y1) és inerciális (x2, y2) szóközök.

A tehetetlenségi tér tengelyeinek iránya egybeesik a világűr tengelyeinek irányával, és az inerciális tér eredete egybeesik az objektum tér koordinátáinak eredetével.

Ahhoz, hogy "injektálj" a tárgytérből a tehetetlenségi térben, forgatni kell. És a tehetetlenségi térből nagyon könnyű belépni a világba. Ez mozgással történik. A tehetetlenségi tér lehetővé teszi a két művelet (forgatás és elmozdulás) elválasztását.

A fényképezőgép koordinálja a helyet

A kamera egy felhasználó ábrázolása egy virtuális világban. A fényképezőgépen keresztül a játékos látja a világ térének egy kis részét.

A kamera iránya - milyen irányba néz a felhasználó és a mező (szektor) a nézetben: függőlegesen és vízszintesen.

A kamera iránya (a lejátszó nézete) mindig egybeesik a z tengely pozitív irányával a kamera koordináta-térben.

Coordinate spaces

A koordinátafelületek meghatározása

Megtudtuk, hogy milyen helyek léteznek a DirectX-ben: a világ, az objektum (minden objektumnak megvannak a maga) és a kameratér. Most meg kell tudnunk találni, hogy ezek a terek kölcsönhatásba lépnek.

Minden térnek tengelyei vannak, és a koordináták eredete a tengelyek metszéspontja (O pont). Az eredet a koordináta tér helye. Például: a fényképezőgép térének eredete a világűrben lévő tér helyzete (koordinátái). A tengelyek határozzák meg a tér irányát.

A koordináta terek átalakítása

Az objektum tér koordinátáinak ismerete, az objektum bármely pontját a világ koordinátáiban fejezhetjük ki, és fordítva, a világkoordináták bármely pontját az objektum tér koordinátáiban lehet kifejezni.

Elemezzük a helyzetet, amikor az objektum koordinátái egybeesnek az inerciális koordinátákkal. Tegyük fel, hogy van egy háromszög a koordinátákban (0,0) (1,1) (1,0). A tér koordinátái a világon (23, 12). A háromszög pontjai világkoordinátákká való átalakításához elegendő az egyes pontok koordinátáit az objektum tér koordinátáival hozzáadni: (23,12) (24,13) (24,12) - ez a háromszög a világ koordinátáinak tekinthető. Egyszerűen, igaz?

Egy pont koordinátáinak a világból objektumra való átalakításához az objektumterület koordinátáit le kell vonni a pont koordinátáiból.

Ha az objektum koordinátái nem egyeznek meg az inerciális koordinátákkal, akkor először forgatni kell, a többieket kihagyások nélkül.

Fontos megjegyzés: a koordináta-terek átalakításakor az objektumok koordinátái nem mozognak. Egyszerűen fejezzük ki az objektumok helyét különböző koordinátatérben.

Arkanoid

Coordinate spaces

fényképezőgép
Coordinate spaces

sejteket
Coordinate spaces

sprite
Coordinate spaces

Kapcsolódó cikkek