Féléves feladat¶
Minimális elvárások az elkészített programmal szemben¶
Kamerakezelés: A virtuális teret az egér és/vagy billentyűzet segítségével be kell tudni járni.
Objektumok: Térbeli objektumok legyenek. Ezeket, mint modelleket külön fájlból lehessen betölteni.
Animáció, mozgatás: A program legyen interaktív. A modelleket, fényeket billentyűzettel, egérrel lehessen mozgatni; legyenek animált részek.
Textúrák: A modelleknek legyen textúrája.
Fények: A programban a fényeket a
+és-billentyűk segítségével lehessen állítani (vagy egyéb kézenfekvő módon a program leírása alapján).Használati útmutató: Az
F1gomb megnyomására (vagy egyéb kézenfekvő módon) jelenjen megy egy leírás a programról, annak használatáról, kezelési módjáról.
Az elkészített programnak jól strukturáltnak, következetesnek kell lennie. Törekedni kell arra, hogy a modellek, a kezelés kidolgozott, a megjelenítés esztétikus legyen. Ezek a minimális elvárások a programmal szemben. Amennyiben ezek teljesülnek, úgy a feladat már elégséges.
Többlet funkciók¶
A jobb jegyért például az alábbi dolgokat lehet a programban megvalósítani.
Bonyolultabb animációk: Például karakterek animálása, görbék mentén mozgatás.
Fizika: Például ingák, rugózás, szövet, víz.
Részecskerendszerek: Például Tűz, füst, eső, hóesés.
AI: Táblás játékok esetén kézenfekvő, egyéb játékoknál ellenfelek vezérlése például.
Köd: Köd hatás megvalósítása, dinamikus változtatása.
Átlátszóság: Átlátszó részeket tartalmazó textúrák alkalmazása, félig áttetsző részek a megjelenített objektumokon.
Árnyék: Árnyékszerű hatások létrehozása.
Ütközésvizsgálat: Bounding-box implementáció valamilyen formája.
Stencil buffer használata: Nem téglalap alakú képterületek megvalósításához.
Felhasználói felület: A paraméterek állításához külön felületi elemek.
Objektumok kijelölése egérrel: A megjelenített objektumok kijelölése.
Térkép kezelése: Például magasságmező betöltése képfájlból úgy, hogy adott modellek helyét is meg lehessen adni rajta.
Procedurális geometria, textúrák: Modellek létrehozása valamilyen algoritmus segítségével.
LOD: Level of Details a hatékonyabb megjelenítéshez.
Bump mapping, displacement mapping: Képek használata a felületi érdesség tárolásához, megjelenítéséhez.
Environment mapping: Környezetről készített kép használata textúraként, az ahhoz tartozó transzformációk megvalósítása.
Sztereoszkópia: Például renderelés valamilyen 3D-s megjelenítő eszközhöz.
Minden így elkészített plusz funkció 1-gyel növeli az érdemjegyet (5-ben maximálva). Mindenkinek javaslom, hogy legalább 3 plusz dolgot építsen be a programjába.
Programmal és beküldésével kapcsolatos észrevételek¶
A program forráskódjának
makeparanccsal lefordítható formában kell szerepelnie a repository-ban.A programhoz tartozó adatokat egy
assetsnevű jegyzékbe kell elhelyezni.Az
assetsjegyzéket tömörítve valahová fel kellene tenni (például: saját weboldal, DropBox, OneDrive), nem pedig csatolmányként küldeni. Ennek a linkjét aREADME.mdfájlban kell feltüntetni.A project mérete kitömörítést követően a 200 MByte-ot lehetőleg ne haladja meg.
A textúrákhoz PNG vagy JPEG formátumú fájlokat érdemes használni.
A
mainfüggvényt tartalmazó fájl nevemain.clegyen.A forráskódban az elnevezéseknek angolul kell szerepelni.
Minimális számú globális változót kell használni.
A fejléc állományokba dokumentált formában kerüljön az interfészek leírása. A forrásállományba ideális esetben nem szükségesek megjegyzések.
A kódban a repeptitív, adattárolásra emlékeztető kódrészeket külön adatszerkezetbe, adatfájlba kell kiszervezni (például CSV fájlokba).
Törekedni kell arra, hogy a program figyelmeztetések (warning) nélkül forduljon.
Ha a forráskódhoz tartozik valamilyen külső forrásból származó kódrész, akkor azt a megfelelő licensz feltüntetése mellett lehet használni!
Gyakori hibák¶
Nem került kiválasztásra a feladat. Először egy részletes, konkrétumokat tartalmazó, szöveges leírásnak kell készülnie a féléves feladathoz, ami hogy ha az egyeztetéseket követően rendben van, akkor kellene egyáltalán hozzákezdeni a feladat elkészítéséhez.
A kiválasztandó feladat mögött nincs koncepció. Néhány, a semmi, vagy egy textúrázott kocka közepén mozgó, forgó objektum önmagában még nem egy túl átgondolt, kiforrott témára utal.
A program és a repozitórium szerkezete nem megfelelő.
Nem a modellbetöltő statikus függvénykönyvtár került felhasználásra.
Túlságosan sok a globális változó.
A program szerkezete, a forráskódhoz tartozó állományok nem tükrözik, hogy konkrétan miről szólna a választott feladat. (A programoknak OOP szemlélettel kellene készülniük.)
A program ablakát nem lehet átméretezni az arányok megtartása mellett.
A program azt az
Actionsstruktúrát tartalmazza, amire vonatkozóan már rendszeresen említésre került, hogy az nem jó megoldás.A programban az objektumokon indokolatlan helyeken át lehet menni.
Az animáció nem idő függvényében, hanem a kirajzolás számának megfelelően változik.
A betöltött modellek, textúrák esetében az útvonalak nem átvihetőek. (A backslash és a kis-nagybetű különbségek szoktak ilyen problémát okozni.)
A program túlságosan sok repetitív részt tartalmaz. Azokat modellek betöltésével,
forciklus használatával lehet tipikusan orvosolni.Nem látszanak a programban a fényhatások.
Nem megfelelő a programban a fények átállítása. Úgy néz ki, mint hogy ha csak a monitor fényerejét állítgatná a felhasználó.
Nem került bemutatásra a program. Hogy ha minden előzmény, korábbi bemutatás nélkül érkezik be egy feladat, az olyan formában még nem fogadható el. (A feladat elkészítésének az a célja, hogy az illető bizonyítsa, hogy a grafikus programozásban gyakorlatot szerzett, az annak kapcsán felmerülő kérdéseket érdemben meg tudja válaszolni.)