ja, klar, aber wenn ich z.B. ne BMP lad hat die ja (wenns ne 24bit is) D3D_FMT_R8G8B8 also wird das dann in D3D_FMT_A8R8G8B8 konvertiert?
weil sonst gibts ja kein Alphawert. Oder versteh ich da was nicht?
gute frage, ausprobiern...
ich schätz mal es wird konvertiert
abgesehen davon dass ich praktisch kein 2d mach, verwend ich eigentlich das *.tga format für alle texturen... und das kann alpha werte speichern
bzw. was ist wenn der BackBuffer kein Alpha hat, z.B. beim 16bit D3D_FMT_R5G6B5?
oder konvertiert DirectX da intern so um das es dann doch Alpha gibt? Wenn ja, wozu braucht man dann noch die Formate mit Alphawert? Das sind so Dinge die versteh ich einfach nicht...jedenfalls nicht wenn ich mir die SDK-Hilfe anseh.
der backbuffer hat normalerweise keinen alpha wert ( das unterstützen nur neuere grakas, meine z.b. nicht <- Gainward GeForce 4 MX 440 ).
wenn du davon ausgehst, dass der alpha wert angibt wie stark der pixel der texture mit dem im backbuffer befindlichen ( also bereits gerenderten ) pixel kombiniert wird, dann is der alpha wert vom backbuffer 1 - alpha von der texture.
schau dir mal die Renderstates D3DRS_ALPHABLENDENABLE, D3DRS_DESTBLEND und D3DRS_SRCBLEND an.
das is im prinzip alles was du für alphablending brauchst.