Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 09.10.2003, 19:30 Titel: Skalierung von Bitmaps mit directx9 |
|
|
hallo,
ich habe ein bitmap geladen, und möchte es nun immer der auflösung anpassen, es also skalieren (benutze directx9, nur directdraw). jedoch weiss ich nicht auf welche methode ich zurückgreifen muss um dies zu bewerkstelligen. bisher habe ich versucht die Height/Width des rectangles zu ändern, was aber nicht funktioniert hat.
kurz kurz kurz, lang lang lang, kurz kurz kurz
help dem n00b dann gehts dir gut ^^ _________________ If something is stupid and it works, it ain't stupid!  |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.10.2003, 19:41 Titel: |
|
|
Benutz doch den Blt befehl da müsste man doch die Grösse angeben können in der du das Bitmap zeichnen willst.
Tip: Berechne die grösse mit Prozenten. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 09.10.2003, 22:15 Titel: |
|
|
habs jetzt noch hinbekommen. allerdings sehen die bilder immer sehr verpixelt aus, wenn sie von ihrer ursprünglichen auflösung abweichen. weiss jemand was man dagegen tun kann? _________________ If something is stupid and it works, it ain't stupid!  |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 10.10.2003, 08:00 Titel: |
|
|
Das geht nicht anders, da ddraw ja im Grunde nur die einzelnen Pixel vergrößert. |
|
Nach oben |
|
 |
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 10.10.2003, 12:53 Titel: |
|
|
danke für die informationen. dann werd ich wohl oder übel für jede Auflösung ein Bild erstellen müssen...  _________________ If something is stupid and it works, it ain't stupid!  |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 10.10.2003, 13:16 Titel: |
|
|
In den meinsten Spielen ist es so, das bei einer höheren Auflösung, einfach mehr vom Spielfeld angezeigt wird. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.10.2003, 13:28 Titel: |
|
|
Du kannst doch versuchen ne Art "Anti-Alias"-Funktion zu programmieren.
Dann nimmst du einfach den Mittelwert der umliegenden Pixel und setzt mit dieser Farbe den Pixel zwischen den Pixeln des kleinen Bildes.
Bsp:
Du hast eine Pixelreihe(hier ein Ausschnitt von 2 Pixeln):
Für eine größere Auflösung hast du beispielsweise ein doppelt großes Bild:
Hier wird jetzt ein Pixel zwischen das \ und das / eingeschoben. Daraus ergibt sich eine Mischfarbe: X _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.10.2003, 17:33 Titel: |
|
|
Die Antialiasing Funktionen werden nicht umsonst besonders gut in den Grafikkarten eingebaut. Darauf solltest du verzichten. Programmier das lieber nicht, deine Framerate wird extrem niedrig werden wenn du es nicht 100% richtig programmierst. Steige auf Direct3D um da werden die Pixel interpoliert und das Ergebnis sieht auch noch recht gut aus.
Du kannst aber auch ein Bild zeichnen das so gross ist wie die grösst mögliche Auflösung deines Programms. Beim verkleinern entstehen zwar immer noch hässliche Fragmente aber es sieht besser aus als umgekehrt. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.10.2003, 21:09 Titel: |
|
|
Es war ja nur ein Vorschlag(falls er unbedingt nicht für jede Auflösung jeweils ein Bild machen will).
Ich würde das auch am Anfang(nach dem Initialisieren der Surfaces/Sprites) berechnen und somit wäre die Framerate nicht betroffen. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 11.10.2003, 10:56 Titel: |
|
|
ich denke auch dass das anti-aliasing eine gute option ist, nur bisher dachte ich immer das wuerde mir directX und die hardware schon abnehmen.
ich werde das mal ausprobieren, denn ich denke dass das wirklich die schönste methode (wenn sie denn auch schoen funktioniert) ist, wenn sie in eine loading-sequenz eingebaut wird.
da fällt mir ein:
wisst ihr vielleicht auch noch, welche directx.input eigenschaft einen delay im keyboard-datenstrom verursacht. fuer meine menus ist der konstante datenstrom nämlich eine plage
ebenso liefert mir die directx-mouse nur delta_x und delta_y zurück, was bei manueller koordinatenberechnung auf dauer ungenauigkeiten herbeifuehrt. gibts da noch eine andere methode?
danke auf jedenfall fuer die hilfreichen informationen  _________________ If something is stupid and it works, it ain't stupid!  |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 11.10.2003, 12:14 Titel: |
|
|
me hat Folgendes geschrieben: | ebenso liefert mir die directx-mouse nur delta_x und delta_y zurück, was bei manueller koordinatenberechnung auf dauer ungenauigkeiten herbeifuehrt. gibts da noch eine andere methode?
danke auf jedenfall fuer die hilfreichen informationen  |
Du kannst für Mauskoordinaten genausogut die Callbackfunktion nehmen:
Code: | WM_MOUSEMOVE:
{
mousex=LOWORD(lParam);
mousey=HIWORD(lParam);
break;
} |
Ich hatte bis jetzt noch keine Probleme mit Ungenauigkeit/Zeitverzögerung. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 12.10.2003, 13:24 Titel: |
|
|
thx ffor everything
werd mich schon durchbeisse ^^  _________________ If something is stupid and it works, it ain't stupid!  |
|
Nach oben |
|
 |
|