UsePNGImageDecoder() - was ist mit alpha?
Bei der Grafikkarte ist tatsächlich das 4-Byte ungenutzt (also in Grafikbildschirm/Endbild). Warum dann nicht 24-Bit? Einfach: Die Grafikkarte kann mit 4-Byte-Sprüngen leichter rechnen, als mit 3-Byte-Sprüngen (Wenn man einen Pixel ansteuern will).
Edit: Aus diesen Grund wird gerne bei Bildformaten das 4. Byte für den Alpha-Channel benutzt. Es ist eh ungenutzt.
Für eine Sinnvolle Nutzung des Alphachannels müßte allerdings auch die Sprites Alphachannels unterstützen.
Edit: Aus diesen Grund wird gerne bei Bildformaten das 4. Byte für den Alpha-Channel benutzt. Es ist eh ungenutzt.
Für eine Sinnvolle Nutzung des Alphachannels müßte allerdings auch die Sprites Alphachannels unterstützen.
Zuletzt geändert von GPI am 29.01.2005 00:57, insgesamt 1-mal geändert.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
jajaja... is ja alles richtig...
aber:
wenn ich nen 32bit mode hab, dann sind für die grafikkarte die oberen 8 pro pixel
automatisch der alpha-kanal, so stehts ja auch in der grafik selbst...
also wo ist das problem, das einzubinden?
aber:
wenn ich nen 32bit mode hab, dann sind für die grafikkarte die oberen 8 pro pixel
automatisch der alpha-kanal, so stehts ja auch in der grafik selbst...
also wo ist das problem, das einzubinden?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
es wurde in den letzten 5 jahren (mindestens) keine graphikkarte mehr hergestellt, deren blitter nicht auch mit alphakanal funktioniert (außer vieleicht für den embeddedbereich, aber da interessiert es ja eh niemanden). das ist also schonmal überhaupt kein argument.
selbst programmieren ginge, zb mit directx, aber das ist 1. sehr viel arbeit und 2. ist dann das mit der platfformunabhängigkeit essig.
selbst mit dem drawingbuffer ist auch recht einfach und auch platformunabhängig, aber dann wirds schnarch langsam - zu langsam für ein spiel.
für c/c++ gibt es jede menge bibliotheken, die hardwarebeschleunigtes blitten mit alphachannel platformunabhängig anbieten. ne hast schon recht sunny, ist höchste zeit wieder komplett zu c zu wechseln.
selbst programmieren ginge, zb mit directx, aber das ist 1. sehr viel arbeit und 2. ist dann das mit der platfformunabhängigkeit essig.
selbst mit dem drawingbuffer ist auch recht einfach und auch platformunabhängig, aber dann wirds schnarch langsam - zu langsam für ein spiel.
für c/c++ gibt es jede menge bibliotheken, die hardwarebeschleunigtes blitten mit alphachannel platformunabhängig anbieten. ne hast schon recht sunny, ist höchste zeit wieder komplett zu c zu wechseln.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das bringt nichts, denn die sprite routinen nutzen nur alpha fürs ganze sprite, aber nicht den alphakanal. darum währe es so viel arbeit das selbst in einer schnellen weise umzusetzen, weil man dann praktisch alle spritefunktionen nochmal selbst schreiben müßte (zb wenn man es in directx macht).
ansonsten bleibt einem nur der drawingbuffer, aber für ein sprite mit alphakanal auf dem drawingbuffer währe für jedes pixel des sprites ein lese und ein schreibvorgang nötig. zumindest in höheren auflösungen lohnt das wahrscheinlich von der geschwindigkeit her nicht.
ansonsten bleibt einem nur der drawingbuffer, aber für ein sprite mit alphakanal auf dem drawingbuffer währe für jedes pixel des sprites ein lese und ein schreibvorgang nötig. zumindest in höheren auflösungen lohnt das wahrscheinlich von der geschwindigkeit her nicht.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also jetzt bin ich echt verwirrt....
wenn ich auf nem 32bit screen ein 1024x1024 sprite erzeuge,
dann müsste er doch 4byte pro pix -> 4MB benutzen, nicht 3MB...
die grösse is nurn beispiel...
auf diese RAW-bitmap greift DX doch zu....
wenn ich jetzt DX sage, zeig dat teil an, und das hat alpha-werte...
ich dachte, das PB-problem liegt darin, dass er die alpha-werte einfach nicht an die karte übergibt...
wenn ich auf nem 32bit screen ein 1024x1024 sprite erzeuge,
dann müsste er doch 4byte pro pix -> 4MB benutzen, nicht 3MB...
die grösse is nurn beispiel...
auf diese RAW-bitmap greift DX doch zu....
wenn ich jetzt DX sage, zeig dat teil an, und das hat alpha-werte...
ich dachte, das PB-problem liegt darin, dass er die alpha-werte einfach nicht an die karte übergibt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.