Autor Wątek: Powielanie tekstury w jednym kierunku  (Przeczytany 463 razy)

Offline Moriquendi

  • Użytkownik

# Czerwiec 01, 2009, 11:55:31
Chciałem dodać tło w mojej grze. Chyba najlepszym rozwiązaniem jest nałożenie tekstury na duży prostokąt i powielanie jej.
Doczytałem się, że trzeba współrzędne tekstury pozmieniać na większe niż 1. No i znalazłem jeden przykład np.
glTexCoord2f(0.0f, 0.0f); glVertex3f(0.5f, -0.5f, 0.5f);
glTexCoord2f(2.0f, 0.0f); glVertex3f(0.5f, 0.5f, 0.5f);
glTexCoord2f(2.0f, 2.0f); glVertex3f(-0.5f, 0.5f, 0.5f);
glTexCoord2f(0.0f, 2.0f); glVertex3f(-0.5f, -0.5f, 0.5f);
Niestety po takim ustawieniu współrzędnych tekstura jest powielana "w górę i w bok"  ;D
Ja chciałbym żeby tylko w jednym kierunku była powielana.
Wypróbowałem już dziesiątki kombinacji i za każdym razem coś nie wychodzi...albo tekstura się rozciąga, albo się odwraca, albo zostaje "przycięta" itp.
Co robić?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline .:NOXY:.

  • Użytkownik
    • Profil

# Czerwiec 01, 2009, 12:02:23
Słyszałeś o czymś takim jak parametry textury? ;D

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, Param);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, Param);

gdzie param ma wartosc GL_REPEAT , GL_CLAMP . GL_CLAMP_TO_EDGE (GL_CLAMP_TO_BORDER) itp

S, T to parametry szerokosc wysokosc jezeli chcesz ustawic poowtarzalność w "pionie" to T ustaw na GL_CLAMP a S na GL_REPEAT :)

Offline Avaj

  • Użytkownik

# Czerwiec 01, 2009, 14:36:06
ewentualnie może coś takiego chcesz?
Kod: (cpp) [Zaznacz]
glTexCoord2f(0.0f, 0.0f); glVertex3f(0.5f, -0.5f, 0.5f);
glTexCoord2f(2.0f, 0.0f); glVertex3f(0.5f, 0.5f, 0.5f);
glTexCoord2f(2.0f, 1.0f); glVertex3f(-0.5f, 0.5f, 0.5f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.5f, -0.5f, 0.5f);