Példaprogramok: kup.c és kup2.c
Az OpenGL a síkidomok két lapját megkülönbözteti, az előlapokra és a hátlapokra más-más megjelenítési beállításokat adhatunk meg. Az előlapok/hátlapok a síkidomok modellezésekor a csúcspontjaik megadási sorrendje alapján definiálódnak.
Az előlapok vagy a hátlapok megjelenítése kikapcsolható. Célszerű abban az esetben használni, amikor biztosak vagyunk abban, hogy a kérdéses lapok biztosan nem jelenhetnek meg.
Az OpenGL síkidomok modellezésekor az előlapokra és a hátlapokra az alábbi megjelenítési beállításokat biztosítja:
glShadeModel( GL_SMOOTH ); |
glShadeModel( GL_FLAT ); |
Előlapok és hátlapok glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); |
Csak előlapok glPolygonMode( GL_FRONT, GL_LINE ); |
glPointSize( 5.0 ); |
Példaprogram: kup2.c
![]() |
Megjelenítés csak körvonalakkal. Probléma: a 3D hatás nehezen érvényesül. |
![]() |
Megjelenítés csak az előlapok körvonalaival. Probléma: a takarásban lévő objektumok körvonalai is megjelennek. |
![]() |
Megjelenítés kitöltött poligonokkal. Probléma: ha a szomszédos oldalak színe egyezik, akkor a közöttük futó él nem jelenik meg. Lehetséges megoldás: szomszédos oldalak színe legyen különböző. Ez viszont a GLUT modellező függvényeivel nem oldható meg. |
![]() |
Megjelenítés kitöltött és drótvázas együttesen. Megoldás: először kitöltötten modellezünk, majd a PolygonMode függvénnyel drótvázasra váltunk, más modellezési színt állítunk be, és kirajzolunk mindent újra. Célszerű a modellező függvényeket külön függvényben elhelyezni. Az alábbi függvényhívásokat célszerű a program elején megadni a mélységellenőrzés problémájának kiküszöböléséhez: // Avoid flickering wire model glEnable( GL_POLYGON_OFFSET_FILL ); glPolygonOffset( 1.0, 2.0 ); |