Gyakran ismételt kérdések¶
Miért régi OpenGL szabványt kell használni?¶
A tárgy célja nem a lehető legmodernebb technológiák elsajátítása, hanem az alapfogalmak, alapvető megjelenítési módoknak az ismertetése.
A tér leképzése, transzformációk, színterek, poligonhálóval való közelítés, textúrázás … fogalom szintjén nem változtak. (A használati módjuk rendszerenként viszont eltérő, és várhatóan a jövőben is változni fog.)
A régi OpenGL szabvány használata egyszerűbb, azoknak is csak egy igen kis részére van szükség. Nem kell attól tartani, hogy túl sok dolgot feleslegesen tanulna meg közben az ember.
Miért C-ben készülnek a programok?¶
A programozási nyelv megválasztásánál több szempontot egyidejűleg kellett figyelembe venni.
Lehetőleg olyan nyelv legyen, amelyiken szoktak grafikus alkalmazásokat készíteni.
Az elkészült programok legyenek átvihetőek.
Álljon rendelkezésre minél több eszköz és dokumentáció a fejlesztéshez.
Elvárható legyen a hallgatótól, hogy ismeri a programozási nyelvet. (A Programozás alapjai tárgyat elvileg mindenkinek teljesítenie kellett már, amelynél ugyancsak C programozás nyelv került felhasználásra.)
Egyelőre a C bizonyult olyan nyelvnek, amelyik ezeket teljesíteni tudja.
Lehet-e C++ -t használni?¶
C++ nyelvről általánosságban manapság már nem nagyon lehet beszélni. Kb. 3 évente jelenik meg új szabvány, amelybe kerülnek új elemek, és nem javasolják néhány régebbi használatát.
A hallgatóság részéről az egyik érv a C++ mellett az szokott lenni, hogy ahhoz találnak anyagot. Szoktam nézegetni OpenGL-es tutorial-okat és fórumokat. Sajnos ezek nem minden esetben ütik meg a minőségi elvárásokat.
Nagyon ritka, hogy valaki azért nem tud C-ben programozni, mert C++ -ban tud.
Annak alapvetően örülök, hogy ha valaki C++ -ban szeretne dolgozni. Azt javaslom, hogy rövid időn belül készítse el a feladatát C-ben, majd áttérhetünk a C++ nyelvű fejlesztésre. Igyekszem neki segíteni abban is.
Miért nem lehet objektum orientáltan programozni?¶
Tulajdonképpen abban kell. A programoknak objektum orientált szemlélet szerint célszerű készülniük. A C nyelv használata nem azt jelenti, hogy a paradigmát ne lehetne alkalmazni.
A programban ábrázolt adatokat (más megközelítésben állapotteret vagy modellt) struktúrákba célszerű rendezni.
Az ehhez tartozó műveleti részt függvények írják le, melyek első paramétereként, cím szerint kapják az objektum adatait.
A moduláris felépítés érdekében a logikailag összetartozó struktúrákat és műveleteiket külön forrás (
.c
) és fejléc (.h
) állományokba célszerű tenni.Egy megfelelően összerakott programban szépen látszanak az MVC elvek. Az adatokat tartalmazó részek, az események kezelése és a hozzájuk tartozó módosító (itt tipikusan update) műveletek illetve a megjelenítés (render függvények) el kell, hogy különüljenek.
Milyen fejlesztőkörnyezetet lehet használni?¶
A fejlesztőkörnyezetre vonatkozóan nincs megkötés, sem IDE sem fordító vonatkozásában.
A Notepad++ és a GCC csak javasolt.
Mivel átvihető szoftver készül, ezért a programnak le kell tudnia fordulnia GCC fordítóval is.
A programok felépítése adott struktúrát követ. Ez egy GNU Makefile segítségével egyszerűen használható.