[ mrzli777 @ 10.05.2006. 10:00 ] @
Dobar dan ljudi.

Imam jedno pitanje vezano za prikazivanje sprajtova u directx-u.
Kad ucitavam iz npr. neke bitmape neki njen dio, mogu uzimati i prikazivati samo cetvrtaste oblike, a zelim npr. prikazati neki krug. Kako mogu dobiti taj krug bez omedjujuceg pravokutnika, odnosno, kako mogu dio izvan kruga napraviti transparentnim.

Unaprijed hvala.
[ tosa @ 10.05.2006. 11:25 ] @
To možeš da postigneš na par načina. Jedan je da koristiš "color key", nisam siguran
kako se to zove u DX-u, ili da koristis Alpha blending.
U prvom slučaju, deo slike koji ne želiš da bude prikazan označavaš nekom izabranom
bojom koju si izabrao za color key, uključiš filtriranje za taj key i kada crtaš sprajt
pikseli koji sadrže tu boju će biti preskočeni.
U drugom slučaju, boja se blenduje (tj. stapa) sa bojom koja je već u back bufferu
i to u onolikoj meri kolika je vrednost alpha kanala na tom pikselu.
Formula je jednostavna:

Color = SourceColor * PikselAlpha + BackBufferColor * (1-PikselAlpha)

Kod alpha blendinga možeš dobiti mnogo mekše ivice sprajta, ako ti je to od neke važnosti.