Bevezetés a 3D modellezésbe
Kapcsolódó anyagrész
-
Mélységellenőrzés
- Példaprogram: kup.c (kúp modellezése)
-
Poligonok kirajzolása
- A poligonok vetületi képeinek kirajzolása a 2D ablakba a definiálásuk sorrendjében történik.
- Emiatt a később definiált, de a nézőpontunktól távolabbi poligon felül fogja rajzolni az őt átfedő közelebbit.
- Mélységellenőrzés alkalmazásával: az OpenGL minden kirajzolt képponthoz megjegyzi, hogy milyen távolságra volt a poligondarab a nézőpontunktól. Később, ha ugyanarra a képpont helyre újabb pont esik, akkor a rajzolás csak akkor fog megtörténni, ha ennek a távolsága kisebb.
-
Mélységellenőrzéshez szükséges lépések
- main(): glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
- SetupRC(): glEnable( GL_DEPTH_TEST );
- RenderScene(): glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
Poligon megjelenítési módok összefoglalása:
- További megjelenítési lehetőségek: kup2.c illetve kapcsolódó részletes magyarázat.
GLUT modellező függvények
- Alakzatok: gömb, kocka, kúp, tórusz, dodekaéder, oktaéder, tetraéder, ikozaéder, teáskanna.
- Kitöltési módok: kitöltött (Solid), drótvázas (Wire).
- Függvények leírása (angolul): http://www.opengl.org/resources/libraries/glut/spec3/node80.html
- Példaprogramok
-
GLUTObjects.c
-
GLUTObjects2.c
-
Használat
- Kurzor mozgató nyilak: forgatás
- Shift + kurzor mozgató nyilak: objektum, kitöltési mód váltás
- F1-F4: függvény paraméterének növelése
- Shitf + F1-F4: függvény paraméterének csökkentése
Keretprogramok
- alap1.c:
2D modellezésre; RenderScene, SpecialKeys, ChangeSize (párhuzamos vetítés)
- alap2.c:
3D modellezésre; alap1 + Keyboard, Timer, Idle, párhuzamos és perspektív vetítés, objektumok körülforgatása
- alap3.c:
3D modellezésre; alap2 + menürendszer
Feladatok
-
Téglatest, henger modellezése grafikus primitívek használatával (GL_TRIANGLES, GL_QUADS, GL_TRIANGLE_STRIP, GL_QUAD_STRIP).
- Oszlop modellezése (csonkakúpokból összerakva).

Ötlet:
-
Készíts olyan függvényt, amely a palást modellezését végzi.
Ennek meg lehessen adni a két alapkör középpontját (jelölje ezeket (x1, y1, z1) és (x2, y2, z2)), a két alapkör sugarát (lehetnek különbözők is!), valamint a szabályos sokszög csúcspontszámát.
Az alapkörök pontjait az Y=y1 és Y=y2 síkokban modellezd.
-
Az alapkörök modellezése egy másik függvénnyel történhet, hasonló módon.
-
Oszlopcsarnok modellezése.