# A textúrázás alapjai

## Minták, képek feszítése objektumokra

- Négyzetre

- Négyszögre

- Sokszögre

- 3D objektumra

## 2D textúrázás alaplépései

- Készítsük el a 2D textúra képet és mentsük el BMP formátumú képként.
  - A kép szélessége és magassága 2 egész kitevős hatványa legyen, és lehetőleg ne legyen túl nagy (pl. 256x256 vagy kisebb).
- Illesszük be az `#include "texture.h"`
sort a programunkba és legyenek elérhetők a `texture.c`, a `texture.h`, a `bitmap.c` és a `bitmap.h` file-ok.
- Töltsük be a textúrát a `TextureLoad()` függvénnyel és tároljuk el a visszatérési értéket mint textúra azonosítót. A `TextureLoad()` függvény használata:

      GLuint texture1;

      ...

      texture1 = TextureLoad("kup_textura2.bmp", GL_FALSE, GL_LINEAR, GL_LINEAR, GL_REPEAT);

- A `RenderScene()` függvényben a textúrázandó poligon modellezésekor:
  - Engedélyezzük a textúrázást a `glEnable(GL_TEXTURE_2D);` függvényhívással.
  - Válasszuk ki a felhasználni kívánt textúrát az azonosítója megadásával: `glBindTexture(GL_TEXTURE_2D, texture_id);`
  - A `glVertex3f()` függvényhívások előtt adjuk meg a csúcsponthoz rendelt textúra koordinátát a `glTexCoord2f()` függvénnyel.
  - Ha a következő poligonra már nem kell textúra, akkor tiltsuk le a textúrázást a `glDisable(GL_TEXTURE_2D);` függvényhívással.
- A Linux-os `Makefile` kiegészítése:

      APPS = kannak_textura
      OBJ = texture.o bitmap.o $(APPS).o
      SRC = texture.c bitmap.c $(APPS).c

## Példaprogramok

- Tábla: tabla_textura.c DONOTENT.bmp bitmap.c bitmap.h
- Teáskannák: kannak_textura.c pot.bmp land.bmp bitmap.c bitmap.h texture.c texture.h Makefile
- Kúp: kup_textura.c kup_textura2.bmp bitmap.c bitmap.h texture.c texture.h

Megjegyzés: A GLUT modellező függvények közül csak a teáskanna rendel textúra koordinátákat a csúcspontokhoz, a többi nem!

## Nate Robins tutorial

- | Windows: `texture.exe` Linux: `/pub/szgrafika/szamitogepes_grafika/Tutors.linux/texture` Bal egérgomb: paramétermódosítás, képforgatás. Jobb egérgomb: opciók (bal alsó és a jobboldali panelen!).

## Feladatok

- Modellezzünk kockát textúrázott oldallapokkal!
- Modellezzünk textúrázott hengerpalástot!

Textúrázás alapjai diasorozat