Opengl és delphi a gyakorlatban
Minden elmélet jó, ha megvalósítható a Delphi-on :-). Ezért azt javaslom, nem polcok őket, hogy írják az első program OpenGL -, majd emelkedett sikerrel, menjen vissza az elmélet és hogyan, hogy elolvassa a könyveket és weboldalak a téma, hogy tényleg lesz egy szörny háromdimenziós modellezést.
Először is meg kell tennünk az előkészítő munkát:
- Állítsa be a pixelformátumot a megjelenített információnak megfelelően;
- Hozzon létre egy OpenGL-kontextust és készítse el az OpenGL motor működését.
A képpontok formátuma kényelmes egy külön eljárás beillesztésére, amelyet a következőképpen rendezünk:
Itt kitöltésekor TPixelFormatDescriptor szerkezet általunk megadott paraméterek a jövő grafikus kijelző, köztük számos színes bitek és típusát pixel (iPixelType). Azt is meg a zászlókat, hogy amint a neve is mutatja, azt jelzi, hogy a program támogatja az OpenGL, és fel fogjuk hívni a mezőbe, és használja a kettős pufferelés (paraméter szükséges a lejátszás mozgó tárgyak).
Továbbá a SelectPixelFormat hívásával a rendszer kiválasztja a megfelelő képpontformátumot - és hozzárendeljük (a SetPixelFormat segítségével) az ablakunkhoz.
Most már be kell állítanunk az OpenGL kontextusát a Windows modulban található funkciók segítségével, és további hangolást kell végezni a motoron:
Amint láthatja, először a szükséges pixelformátumot állítjuk be a grafika számára. Most segítségével wglCreateContext funkciókat létrehozni OpenGL-kontextusban, majd teszi a jelenlegi helyzetben. Ezen túlmenően, ha a már variálható **, állítsa be a „világ”, amely megteremti. Ehhez át glClearColor tisztítja a kontextusban, és töltse meg 60 százalékos fekete. Ezután válasszon egy mátrixot előrejelzések, amely meghatározza, hogy a háromdimenziós objektumok várhatóan a gépen képernyőn (ablakban koordináták) és ezen keresztül glLoadIdentity létre az identitás mátrix, és meghatározza határok terv „égtájak” segítségével glFrustum hívást. Ezután töltse be a modell modelview mátrix és végzi elmozdulását (glTranslatef).
Mit fogunk rajzolni?
Természetesen egy egyszerű piramist vagy kockát lehetett rajzolni. De mi többet fogunk tenni - rajzoljon egy "szeretetkiáltást" ** (1. ábra). Különösen a "tudományos felsorolás" módszerére kifejlesztett egy olyan modellt, amely leírja a megfelelő görbét:
Csak a matematika nyelvéről a normál emberre kell fordítania.
A színpad előkészítése több kiegészítő funkció csatlakoztatásával kezdődik, amelyek nélkül további munka lehetetlen. Ezeket a funkciókat a BeginPaint és a FormResize módszerben írják elő (úgy, hogy az objektum mérete ennek megfelelően változik, ha az űrlap méretét megváltoztatja). Ehhez a glEnable funkciót használjuk a megfelelő paraméterekkel.Ezután az FormPaint-ban az előzetesen elkészített DrawFace és DrawElement módszereket (lásd az alábbi listát) az említett objektum rajzolásához használjuk. És hogy még több "hő" legyen, használjuk az OpenGL lehetőségeit a jelenet megvilágítására.
Az OpenGL fejlesztésének összetettsége szempontjából hasonló más hasonló könyvtárakkal. Tehát egyrészt nincs különbség, hogy mit értsünk és mit tanuljunk. De ésszerű szempontból minden 3D-projektnek legalább az OpenGL-t támogatnia kell. Miután mindent egybevetve súlyos és láthatóvá, általában a Unix / IRIX / Linux / FreeBSD, és ugyanakkor hiba lenne figyelmen kívül hagyni a Windows felhasználók számára. Annak érdekében, hogy az OpenGL éppen az univerzális nyelv és a közös nevező, amely lehetővé teszi, hogy az alkalmazások szabadon vándorolnak egyik platformról a másikra