Autor Beitrag
Postbote
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 05.12.02 17:40 
Hallo,

ich stehe vor folgendem Problem : In meiner DirectDraw-Anwendung wollte ich mein Bild ein- und ausfaden lassen. Per Gammaramp funktioniert das ja auch recht gut, trotzdem kann ich diese nicht verwenden, da nicht der ganze Inhalt des Bildschirms dunkel werden soll, sondern (ab und zu) nur einzelne Teile. Mit direktem Speicherzugriff sieht die Sache schon besser aus, leider sehr auf Kosten der Geschwindigkeit, was diese Alternative auch unattraktiv macht. Also dachte ich mir, ich benutze Direct3D (7), blitte mein auszugebendes Bild auf ein Texturesurface, und rendere dieses auf zwei bildschirmfüllende Polygone deren Eckpunkthelligkeiten ich dann variiere um das Gesamtbild heller oder dunkler zu machen. Das klappt hervoragend, jedoch passiert folgendes : Mein per DirectDraw zusammengestelltes Bild hat eine Auflösung von 640 * 480 Pixel. Für ein Texturesurface würden Auflösungen von 512*512 oder 1024*1024 (was ja nichtmal alle Grafikkarten unterstützen) in Frage kommen, da deren Dimensionen ja Potenzen von zwei sein müssen. Beim blitten auf das Textursurface wird das Ursprungsbild auf die Texturdimensionen gestretcht, und genau hier liegt das Problem.
Das Ergebnis sieht unzufriedenstellend aus, wenn das 640*480-Bild auf 512*512 Bildpunkte gestretcht und dann ausgegeben wird.
Ich habe schon ausprobiert, die Dimensionen des Texturesurfaces auf 640*480 zu setzen, funktioniert bei mir perfekt, wird aber nicht von allen GraKas unterstützt.

Weißt jemand Rat oder wie ich das Problem umgehen kann? Eine Möglichkeit muss es ja schließlich geben.
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Do 05.12.02 20:16 
Du musst das 640*480 Teil ja nicht auf 512*512 quetschen. Nimm doch einfach 1024*512, blitte deine Bitmap nach links oben in die Ecke, und wenn du das ganze renderst, machst du halt die Texturkoordinaten entsprechend.

Was die Unterstützung angeht, es ist wirklich kein großer Aufwand, zu überprüfen, wie die maximale Texturgröße ist und gegebenenfalls die Bitmap auf mehrere Texturen zu verteilen.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
Postbote Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 06.12.02 19:14 
Danke für den Tipp, ich werde es mal versuchen!