Weet iemand hoe ik kan aangeven dat een bepaalde kleur (magenta) in een 24-bits RGB texture transparant moet zijn?
Voor alpha heb je acht extra bits tot je beschikking (in totaal dus 32)
Ja, dat is een optie. Maar dan wordt je texture gelijk 1/3 groter. Ondersteund OpenGL dan geen color keying zoals volgens mij Direct3D en Glide?
Verwijderd
Je videokaart/driver maakt van elke pixel een 32-bit (RGBA) float Als je dus alleen RGB pixels aanlevert dan wordt gewoon de alpha waarde voor elke pixel op 1 gezet. Je hebt dus geen winst als je het alphakanaal niet gebruikt maar je laat de kans lopen om er iets zinnigs mee te doen.
En wie wil nu met elke texture die hij maakt rekening houden dat een bepaalde kleur er niet in mag zitten omdat het anders transparant wordt?
En wie wil nu met elke texture die hij maakt rekening houden dat een bepaalde kleur er niet in mag zitten omdat het anders transparant wordt?
De image editing software kan gewoon bijhouden welke kleur transparant is, zodat je er zelf geen last van hebt. Dan kun je gewoon alle kleuren gebruiken die je wilt.
En ik nam aan dat videokaarten ook 24-bits textures ondersteunden, maar blijkbaar is die aanname dan fout.
En ik nam aan dat videokaarten ook 24-bits textures ondersteunden, maar blijkbaar is die aanname dan fout.
ik ben eens in de dx 8.1 api doc gaan bladeren, maar hoe gaat colorkeying in dx 8 dan? Want dat kan ik dus echt niet vinden...
volgens mij wordt het namelijk ook helemaal niet in directx ondersteund (alleen bij hardware blitting), en in opengl ook niet
volgens mij wordt het namelijk ook helemaal niet in directx ondersteund (alleen bij hardware blitting), en in opengl ook niet
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Ik heb er ook nog nooit van gehoord. Volgens mij is het alleen in DirectDraw mogelijk. De enige andere mogelijkheid die ik heb geleerd is door middel van 2 (natuurlijk weer eens) niet gedocumenteerde Window APIs: _AfxInitMaskFromBitmap & _AfxDrawMaskedBitmap.
Verwijderd
Zijn geen windows api's maar gewoon wat ongedocumenteerde troep uit de mfc library's. niet echt ingewikkeld wat ie doet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| void _AfxInitMaskFromBitmap(CBitmap* pbmp, CBitmap* pbmpMask)
{
BITMAP bmp;
pbmp->GetObject(sizeof (BITMAP), &bmp);
pbmpMask->CreateBitmap(bmp.bmWidth, bmp.bmHeight, 1, 1, NULL);
CDC dcDst;
dcDst.CreateCompatibleDC(NULL);
CDC dcSrc;
dcSrc.CreateCompatibleDC(NULL);
CBitmap* pbmpSaveDst = dcDst.SelectObject(pbmpMask);
CBitmap* pbmpSaveSrc = dcSrc.SelectObject(pbmp);
COLORREF oldBkColor = dcSrc.SetBkColor(dcSrc.GetPixel(0, 0));
dcDst.BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight, &dcSrc, 0, 0,
NOTSRCCOPY);
dcSrc.SetBkColor(oldBkColor);
} |
Uhm ja hij heeft het over opengl hoor... MFC heeft daar helemaal niets mee te maken
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Pagina: 1