Transzformációk háromdimenziós térben

Amikor háromdimenziós grafikával dolgozik, többfajta koordináta-rendszert használnak. A 2D objektumok megjelenítéséhez egy megfelelő koordináta-rendszerre volt szükségünk, két tengellyel - az X vízszintes tengellyel és a függőleges Y tengellyel. Emlékezzünk vissza, hogy a képernyő koordináta-rendszer két dimenziós grafika van kezdete (pont 0.0) a bal felső sarokban a monitor, a pozitív része az X tengelyen a jogot a származás, a pozitív része az Y tengely - alulról.

Együttműködik háromdimenziós tárgyak, szükségünk van egy másik tengely - ez az úgynevezett Z tengely Számos változata a háromdimenziós koordináta-rendszer, különösen a közös úgynevezett jobbkezes és balkezes rendszer. A jobbkezes rendszert használjuk - az XNA keretrendszerben használják. A vázlatos képet az 1. ábrán mutatjuk be. 1.

Transzformációk háromdimenziós térben

Ábra. 1. Jobboldali koordináta-rendszer

A különlegessége ennek a koordináta-rendszer abban a tényben rejlik, hogy az eredete lehet társítva a bal alsó sarokban a monitor, a pozitív rész az X-tengely, hogy a közvetlenül a származási, a pozitív rész az Y tengely - a felső rész és a pozitív Z-tengely - az elülső. Ez azt jelenti, hogy a Z-tengely látható része negatív része. A tengelynek ez a része olyan, mintha "a monitor mélyén", míg a pozitív rész "a monitor előtt". Az 1. ábrán. 1. a pontozott vonal a Z tengely negatív részét mutatja.

Egy kétdimenziós koordinátarendszerben van egy pont fogalma - a koordinátáit két érték adja - X és Y. A pontok háromdimenziós koordinátarendszerben léteznek - három értékkel vannak meghatározva - X, Y, Z.

A pontok meghatározzák a sokszögek (poligonok) csúcsai, különösen a háromszögek koordinátáit. Így a 3. ábrán látható háromszög. 1. Három pontból - A, B, C

A háromszögek általában bonyolultabb háromdimenziós objektumokat alkotnak.

A háromdimenziós grafikákban van olyan, mint egy arc. Ez egy sík tárgy, amely több csúcsot definiál. A mi esetünkben a szokásos háromszög csak egy arc. Számos sík felületről gyűjthet egy háromdimenziós tárgyat.

Minél több háromszög van a modell megépítésében - annál részletesebben kiderül. A háromszög csúcspontjainak megfelelő, háromdimenziós térben ábrázolható pontokat csúcspontnak nevezik. Talán találkozik a vertex szó többesével: a "csúcs" úgy néz ki, mint a "vertices" angolul. Néha a felsők megjelölésére angol-csúcsú nyomkövetési papírt használnak.

A háromszög nem véletlenül választották az alapvető geometriai formák - első - ez mindig egy sokszög konvex, másrészt - lehetetlen, hogy gondoskodjon a három pontot, így azok nem tartoznak azonos síkban. Ez azt jelenti, hogy a háromszög mindig domború és lapos alak, amely lehetővé teszi, hogy sikeresen használhassa a 3D grafikát.

Számos arcot, amelyből egy háromdimenziós objektum áll, hálónak nevezik. A "rács" háromszögek készlete.

Egy másik koncepció, amely akkor hasznos, ha a 3D grafikával dolgozik, egy vektor fogalma. Egy vektor, mint egy pont, három paraméterrel definiálható, de nem írja le a helyzetet a térben, hanem a mozgás irányát és sebességét.

A vektor kezdete és vége van, teljes definíciójának ismeretében ismerni kell a vektor kezdetének és végeinek koordinátáit, azaz a három koordinátaérték helyett már hat értékre van szükségünk. Ha azonban eredetileg a származás eredete származik (0,0,0 pont), akkor a meghatározásnak három pontja van.

Például egy vektor, amelynek koordinátái (1,0,0) jelentése: "irány - jobbra, sebesség - 1". Ha elhalasztjuk ezt a vektort a származásról, egyértelműen látható, hogy jobbra irányul (2. ábra).

vektor által meghatározott irányban a helyzetét a második pont képest az első (a mi esetünkben - a helyzet a végpont vektor, ahol a vektor viszonyítva meghatározott eredetű), és a sebessége - a hossza a vektor - amely - a különbség a kezdeti és a végső pont. Esetünkben a vektor hossza egybeesik a végének koordinátáival.

Transzformációk háromdimenziós térben

Ábra. 2. A vektor (1,0,0)

Van egy speciális vektor - normál. Normálok építhetők az arcok és a csúcsok egy objektum. Az arcok normáljai merőlegesek ezekre az arcokra. Ezeket egy objektum színének kiszámításakor használják.

Transzformációk háromdimenziós térben

Az objektumot alkotó sokszögek csúcspontjainak koordinátáit ismerjük, űrbe rendezhetjük. Most meg kell értenünk a térbeli tárgyak helyzetének változását. Számos alapvető művelet használható objektumok háromdimenziós térben való mozgatására. Ez a fordítás, a forgatás és a skála.

A 3D-s játék grafikus alrendszerének eredményei egy síkképernyős monitoron - egy számítógépes modell háromdimenziós jelenetét kétdimenziós felületre tervezzük. A kivetítés során ki kell választania egy olyan pontot, amely kameraként működik, és így láthatja a háromdimenziós teret. A háromdimenziós térben lévő objektumok viszont bizonyos szabályok szerint mozoghatnak. Ennek kezelése érdekében több mátrixot használnak. Ez egy világmátrix (World Matrix), egy View Matrix és egy vetítési mátrix.

A mátrixot m sorokból és n oszlopokból álló táblázatként ábrázolhatjuk. A számítógépes grafikus mátrixok 4x4 használják. Ennek a mátrixnak az első három oszlopa felelős az átalakításban résztvevő objektumok csúcspontjainak X, Y, Z koordinátáinak módosításáért.

A világmátrix lehetővé teszi a transzformációk - mozgó, forgó és átalakító objektumok - meghatározását.

A nézet mátrix lehetővé teszi a kamera vezérlését.

A vetületi mátrix a háromdimenziós jelenet vetítésének beállítására szolgál a képernyőre.

Tegyük fel, hogy van egy háromszög, amelyet a következő csúcsok adnak (1. táblázat).

1. táblázat: A háromszög csúcsai az elmozdulás előtt

Amikor ezt a háromszöget 10 pozícióval mozgatjuk az X tengely mentén, hozzá kell adnunk 10-et a csúcsok X koordinátáihoz. Az eredmény egy ilyen mátrix (2. táblázat).

2. táblázat: A háromszög csúcsai az elmozdulás után

Ugyanaz a hatás érhető el, ha mindegyik csúcs koordinátáit megszorozza a világmátrix. Ehhez a csúcs koordinátái egy sorból és négy oszlopból álló mátrixként jelennek meg. Az első három oszlop tartalmazza az X, Y, Z koordinátákat a negyedik - 1. A világmátrix 4x4-es táblázat formájában jelenik meg. Így néz ki a mátrixszaporítás mûködése (1. képlet):

1. képlet: A csúcs és a világmátrix mátrixának szorzása

A konvertálás során az egyes csúcsokat a világmátrix szorozza meg.

Minden térbeli átalakuláshoz szükség van a világmátrix speciális beállítására. A 2. képletben a világmátrix sablonja, amely lehetővé teszi a tárgy térbeli mozgását.

2. képlet. A világmátrix az objektum mozgatásához

itt # 916, X, # 916, Y és # 916; Z - az X, Y és Z koordináták növekményei.

Az X tengely körül forgó tárgyak világmátrixa így néz ki (3. képlet).

3. képlet. Világmátrix az X tengely mentén forgatható

itt # 945; - rotációs szög a radinokban

Az objektumok Y tengely mentén történő forgatására szolgáló világmátrix így néz ki (4. képlet)

4. képlet. Világmátrix az Y tengely mentén való forgatáshoz

A Z tengely körüli tárgyak forgatására szolgáló mátrix az 5. képletben található.

5. képlet. A világméretű mátrix forgása a Z tengely mentén

A 6. képlet egy olyan mátrixot jelent, amely objektumok transzformálására szolgál.

# 966; x, # 966; y, # 966; z a csúcspontokra vonatkozó skálázási tényezők. Lehetővé teszik, hogy "összenyomja" vagy "nyúzza" az objektumokat.

Más típusú mátrixok:

A kivetítő mátrix lehetővé teszi, hogy szabályozza a képernyőn megjelenő jelenet vetületét.

Az első egy perspektivikus vetület (Perspektív vetítés). Ebben a vetületben a tárgyak ugyanúgy néznek ki, mint ahogyan azt a való világban láttuk. A távolabbi tárgyak kevésbé objektumokat mutatnak.

A második fajta vetület egy ortogonális vetület. Itt a tárgyakat a képernyő síkjára vetítik, tekintet nélkül a perspektívára.

A játékok tárgyainak megvilágítása ugyanolyan szerepet játszik, mint amilyet a való világban hozzárendeltek. Sokféle világítás létezik.

A környezeti környezeti fény olyan fény, amely ugyanolyan intenzitással világítja meg a jelenet minden tárgyát. A szétszórt fényforrásnak nincs helye.

A pontfény a forrás, amely minden irányba fényt bocsát ki. Összehasonlítható az árnyékban nem szereplő izzólámpa fényével.

Irányított fény (irányított fény). Ez a forrás, ellentétben a pontforrással, nincs helye, de iránya van

A zónafény (spotlámpa) vagy a spotlámpa helye, iránya, és a fényáram csak kúp alakú.

A fényforrások különböző intenzitásúak, különböző színűek lehetnek, amikor világító jeleneteket használ, többféle forrást használhat. Mindez megkönnyíti a háromdimenziós grafika legfontosabb elemét.

Shaders vagy shader programok - olyan programok, amelyek lehetővé teszik, hogy különböző hatásokat alkalmazzanak a modellekre. Egy speciális programozási nyelven íródnak, általában nem manuálisan, hanem a megfelelő szoftver használatával. Az árnyékolók csúcsra és pixelre vannak felosztva. A Vertex árnyékolók lehetővé teszik, hogy különböző hatásokat alkalmazzanak a modellek tetejére, a pixel árnyékolók a modell minden egyes képpontjának színét feldolgozzák, mielőtt megjelenítenék a képernyőn.

A textúrák raszteres (kétdimenziós) képek, amelyek háromdimenziós modelleken helyezkednek el. Például a háromdimenziós modell jármű lehet egy autó, amely mintha „cut” a szilárd anyagot, majd vetíteni a modellhordozóban válik a megfelelő struktúra szín, ami azt az illúziót, hogy volt kis alkatrészek hézag stb A textúrák minimális egységét texelnek nevezik. Minél több képpont létezik texelenként, annál nagyobb a textúra felbontása - annál jobb minőséget kap a modell, mint egy textúra alkalmazása.

Kapcsolódó cikkek