Autor Wątek: Dopasowanie tekstury do wierzchołków [2d]  (Przeczytany 603 razy)

Offline magik6000

  • Użytkownik

# Czerwiec 15, 2011, 19:37:31
Witam. Mam dość poważny problem, otóż:

mam daną teksturę i 4 wierzchołki,
muszę ułożyć te wierzchołki w czworokąt i wypełnić go teksturą.

1. powiedzmy, że mamy teksturę i wierzchołki:






2.sprawdzam odległości i po jakichś tam obliczeniach zmieniam rozmiar tekstury, aby się nadawała do nałożenia

3.układam te wierzchołki w czworokąt(ale jak??)



4.nakładam teksturę (no i tu zaczynają się schody, bo czworokąt ma różne kształty, a jakoś specjalnie uniwersalnego sposobu na każdy "typ" czworokąta nie znam.)



Teraz mam pytanie. czy jest jakaś biblioteka umożliwiająca taką magie(najlepiej SDL).
jeśli nie, to jak zrobić to żeby działało, bo moje ambicje zgasły już parę dni temu.

Offline Mr. Spam

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

Offline cybek

  • Użytkownik
    • Strona domowa!

# Czerwiec 15, 2011, 19:44:49
Każda biblioteka 3D? OpenGL? DirectX?

Offline magik6000

  • Użytkownik

# Czerwiec 15, 2011, 19:50:02
no właśnie niezbyt, bo to = potrzeba przerobienia ok. 10 k lini kodu + rezygnacja z SDL_gfx

Offline hashedone

  • Użytkownik

# Czerwiec 15, 2011, 20:32:07
Ale po co w tym momencie SDL_gfx? Ta biblioteka naprawia pewną ułomność SDL - brak możliwości rysowania prymitywów graficznych. Wszystko do 3D potrafi te prymitywy rysować, więc jaki problem? A jeśli pisałeś coś tak że nagle zmiana biblioteki graficznej to zmiana 10k linii kodu... no cóż. Generalnie jeśli dobrze rozumiem czego potrzebujesz, to SDL nie ma takiej funkcjonalności. Ew. możesz sobie na podstawie tego wielokąta wygenerować maskę dla tekstury za pomocą filledPolygon i zblitować to przez SDL_gfxBlitRGBA (to jakoś pozwalało zblitować alphę) na teksturę, na końcu rysować samą teksturę... Ale dawno się SDLem bawiłem. Generalnie w tej bibliotece tego po ludzku nie zrobisz.

Offline magik6000

  • Użytkownik

# Czerwiec 15, 2011, 20:57:35
chyba znalazłem SDL_gfx 2.0:

int texturedPolygon (SDL_Surface * dst,
const Sint16 * vx,
const Sint16 * vy,
int n,
SDL_Surface * texture,
int texture_dx,
int texture_dy
)