Az OpenGL - felhívni egyszerű tárgyak

3.1 Általános

Pontok, vonalak, háromszögek, négyszögek, sokszögek - egyszerű tárgyak teszik ki bármilyen bonyolult forma. Az előző fejezetben már húzott egy gömb, kúp és tórusz. OpenGL közvetlenül nem támogatja funkciókat generálni az ilyen összetett objektumok, azaz a ilyen funkciót nem opengl32.dll. Ezek a funkciók a glu32.dll közművek könyvtárban, és ők vannak elrendezve a következőképpen. Kell felhívni a gömb funkció auxSolidSphere glu32.dll függvényeket használja a könyvtárból, és ők viszont az alapvető, könyvtár és opengl32.dll a vonal vagy poligon építőiparban. Primitívek létre az alábbiak szerint:

Először azt mondod, levonja - glBegin a megfelelő paraméterrel. Mode Lehetséges értékek szerepelnek az alábbi táblázatban. Következő a csúcspontok megadásakor, amelyek meghatározzák a tárgyak a megadott típusú. Jellemzően akkor kérje az egyik legjobb négy módon.

Végül, akkor hívja kéreg, jelezve, hogy befejezte rajz a tárgyak a típusát a glBegin. Ezután részletesen elemezzük a teremtés összes entitás.

Minden hívás meghatározza glVertex egy pont.

Minden pár csúcsai egy adott szegmens.

Törött vonalat húzunk, és az utolsó pont kapcsolódik az elsőhöz.

Minden három hívás glVertex meg egy háromszöget.

Húzott háromszögek egy közös oldalon.

Ugyanez, de össze vannak kötve a felső, nem valószínű, akkor szüksége lesz egy másik szabály.

Minden negyedik hívás glVertex meg egy négyszög.

Quadok egy közös oldalon.

Tudod felhívni annyi pontot, amennyire szüksége van. Okozó glVertex3d, akkor létrehoz egy új pontot. Amikor létrehoz egy pontot, akkor módosíthatja a következő paramétereket. Hívhatjuk glColor3d belül glBegin / kéreg. Dot mérete állítható be a funkciót:

simítás üzemmódban lehet beállítani funkció meghívásával

Hívás megszakad, illetve glDisable () c ezt a lehetőséget. Az utolsó funkció - glPointSize és glEnable / glDisable kell hívni arra, glBegin / kéreg, ellenkező esetben figyelmen kívül hagyja. glEnable / glDisable funkciók közé be / ki egy csomó lehetőség, de tudnia kell, hogy néhány opció jár nagy számításokat, és ezért meglehetősen gátolják az alkalmazásának, így nincs szükség nem szükséges csatolni. Nyilvánvaló, hogy nem, mint többek között a világítás, állományjavító és simító színek rajzolás közben pontokat. Amíg ezeket a funkciókat OpenGL nem teljesül, úgy emlékszem, ez a jövő számára.

A vonalak esetében is változtatni a szélességét, színét, méretét, anti-aliasing. Ha a különböző színeket elején és végén a sor, színe irizáló. OpenGL alapértelmezett teszi interpoláció. Azt is felhívni a szaggatott vonal, ez történik a maszkot használja a következő funkciókat:

A második paraméter a maszk is. Például, ha az érték 255 (0x00FF), majd állítsa be a maszk kiszámításához használatát a számológép. A bináris ez a szám így néz ki: 0000000011111111, azaz összesen 16 bit. Senior nyolc nullára vannak állítva, akkor nem lesz sorban. A fiatalabb meg, hogy egy, majd a vonalat húzott. Az első paraméter határozza meg, hogy hányszor minden bit megismételjük. Például, ha van beállítva, hogy 2, akkor előírni maszk fog kinézni:

3.4 háromszögek

3.5 négyszögek és sokszögek

Négyszögek húzott meghívásával glBegin funkcióparaméterrel GL_QUADS vagy GL_QUAD_STRIP. Az első esetben minden négy csúcsa határozza meg a téglalap. A második esetben húzott kapcsolódó négyszög. Az első, második, harmadik és negyedik csúcs meghatározására egy első téglalap. A harmadik, negyedik, ötödik és hatodik csúcs - második négyszög, stb (2n-1), 2n, (2n + 1) és a (2n + 2) határozza meg a csúcsok n-edik négyszög. A sokszögek által meghatározott hívja glBegin a GL_POLYGON paramétert. Minden csúcsai határozzák sokszög. Sokszögekhez stílusok is megadható a fent leírt funkciók glPolygonMode, vonalvastagság, vastagságát és színes pontok.

3.6 Feladat: „primitív”

Döntetlen a pontok, vonalak, háromszögek, sokszögek egy ablakban, az alábbiak szerint.

Az OpenGL - felhívni egyszerű tárgyak

A forrás fájl itt. Végrehajtható itt.

3.7 Feladat: "Polyhedra"

Végrehajtása huzal poliéderek huzal háromszögek, poligonok és vonalak.

3.8 Összefoglalás

Nos, akkor egy lépéssel előre a tanulmány az OpenGL könyvtárban. Most már van egy ötlete, hogyan kell felhívni alapvető formák. A primitívek, akkor lehet, hogy ez a szám a komplexitás.