Számítógépi grafika segédlet

Feladattal kapcsolatos tudnivalók

A feladat elkészítéséhez az alábbi két lehetőség közül lehet választani.
Alapvető elvárások a feladattal szemben
Ezek a minimális elvárások a programmal szemben. Ezeken kívül a jobb jegyért például az alábbi dolgokat lehet a programban megvalósítani.
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.
További észrevételek a programmal és a feladat beküldésével kapcsolatban itt találhatók.

Gyakorlatok

1. Fejlesztőkörnyezet beüzemelése

Programozási feladat (a circle példához hasonlóan)

2. Koordináta transzformációk (2D)

Végezzük el a kódban az alábbi bővítéseket!
  • Definiáljunk egy init_identity_matrix függvényt, amelyik az egységmátrixot inicializálja!
  • Definiáljunk függvényt a mátrix skalárral való szorzásához!
  • A multiply_matrices függvényben implementáljunk a mátrix szorzást!
  • Definiáljuk a transform_point függvényt, amelyik egy síkbeli, homogén koordinátákkal adott pontra végzi el a paraméterben kapott mátrix által leírt transzformációt!
  • Írjunk 3 függvényt a transzformációkhoz, amelyik módosítja az első paraméterében kapott transzformációs mátrixot! A függvények neve legyen scale, shift, rotate! A skálázás és a forgatás origó középpontú legyen!
  • Készítsünk példát minden elkészített függvény használatára vonatkozóan!
  • Kiegészítő feladatok
  • Készítsünk egy verem struktúrát, amelynek az elemei transzformációs mátrixok!
  • Valósítsuk meg a push_matrix és pop_matrix műveleteket!
  • Készítsünk példát, amelyben ennek a segítségével "visszavonhatóak" lesznek a műveletek!
  • 3. A GLUT használata

  • Töltsük le és nézzük át a pong példát a grafika repository-ból!
  • Változtassuk meg a labda sebességét!
  • Javítsuk ki a programot, hogy csak akkor ütközzön vissza a labda bal és jobb oldalt, ha ott van az ütő alatta!
  • Kattintással lehessen áthelyezni a labdát!
  • Billentyűk segítségével lehessen változtatni a labda méretét bizonyos határokon belül!
  • Oldjuk meg, hogy forogjon is a labda egyenletes sebességgel! Ütközés esetén ez a sebesség változzon (például attól függően, hogy melyik oldalnak vagy milyen irányból ütközött neki)!
  • Készítsünk két számlálót, amelyik nyilvántartja, hogy melyik játékosnak mennyi pontja van. Ezt valahogyan jelenítsük meg!
  • 4. Primitívek kirajzolása és kamerakezelés

    Töltsük le és nézzük át a origin példát a grafika repository-ból, majd végezzük el az alábbi módosításokat!

    5. Modellek betöltése, OBJ formátum

    6. Fények, anyagjellemzők, átlátszóság

    OBJ loader statikus library használata
    Feladatok

    7. Képbetöltés, textúrázás

    OpenGL programozás segédlet

    C / GLUT


    Leírások kódpéldákkal Hivatkozások
    Windows teszt valtozat