JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=97c8e7e92494e12295b54e3ccb765712Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Flottes Blitten
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 16.02.2005, 09:09    Titel: Flottes Blitten Antworten mit Zitat

Hey.
Ich hab jetzt mal wieda ein 2D-Projekt angefangen. Und eben hab ich das mit dem DDvsD3D-Surfaces im FAQ-Forum gesehen...hmm, daraus ergeben sich zwei Fragen:

>1. Sollte ich die LPDIRECT3DSURFACE9 durch DirectDrawSurfaces ersetzen?

>2. Was schnelles zum Blitten muss her. Die Dinger lad ich außerdem ohne Alphakanal. Ich hatte mir da mal selbst was geschrieben, und bekam 2fps Very Happy Shocked
Na ja, was geht dafür? Es wäre praktisch, wenn ich trotzdem Direct3D weiter benutzen könnte, da ich mit DD noch nie was gemacht hab.
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 16.02.2005, 09:24    Titel: Antworten mit Zitat

Wenn ich mich nicht irre, heißt Blitten doch auf die einzelnen Pixel zugreifen, oder? (Ich mag so manches Fremdwort nicht, Blitten gehört dazu. Finde, das klingt irgendwie schepp.)
Wenn schnelles schreiben und lesen der Pixel her muss: Hast du das Surface bei Usage als D3DUSAGE_DYNAMIC angegeben? Du könntest auch eine eigene Surface-Klasse schreiben, die die Daten des Surfaces im Speicher bewahrt, die du dann veränderts und die Klasse das Surface dann erst sperrt, den Kram in einem Rutsch schreibt (oder das Surface ganz neu erzeugt???).
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 16.02.2005, 10:05    Titel: Antworten mit Zitat

Hi,

wie Du sicherlich gelesen hast: http://www.jliforum.de/board/viewtopic.php?t=3297

Finger weg von IDirect3DSurface9 und co. Wenn Du ein schnelles 2D Projekt haben willst empfehle ich eher Direct3D mit 4 vertices + textur, da haste am meisten von.

Falls es jedoch noch DirectDraw sein soll, schau Dir diesen Quellcode an:
http://www.poke53280.de/files/spaceinvasion/spaceinvasion_source.zip

in ihm ist eigentlich alles was ein gutes 2D Game braucht: Surfaces, GammaRamp usw.

Die BltMethoden kommen auf Deine Umgebung an, mit einem Flip kommst Du im Fenstermodus nicht weit, da hilft nur ein Blt, im Vollbild muss man dann mit BltFast bzw. Blt hantieren, dabei kommt das auch wieder auf den Verwendungszweck an.

Aber nochmal ausdrücklich: Wenn Du lieber Autofahren willst über 300 kmh, solltest Du den Bremsklotz (Direct3DSurfaces) schnell abwerfen, denn sonst fährst Du nur 4kmh.

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 10:28    Titel: Antworten mit Zitat

Okay, ich hobs... Hab nämlich gestern eine Bitmapfont mit texturierten RHW-Quads geschrieben, das lässt sich echt leicht auch für eine eigene Surfaceklasse machen.
Is auch viel schneller als das blöde D3DXFont! Ha, raus damit! Rambo

Danke, Gruß
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 10:46    Titel: Antworten mit Zitat

*hust*
http://83.246.114.104/patrick/index.php

Teil 7 Wink Text, Buttons, Rendern im 2D Modus und transformierung (sowie andere Operationen) per Matrix Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 14:56    Titel: Antworten mit Zitat

Aber stylische Wabbelfont die grün ist und lustig ist wie für mein "Blot the Blobs" geht so nicht Very Happy Die muss ich malen Cool Und dann die Scheisstexturkoordinaten definieren Crying or Very sad

Aber das mit den Buttons pack ich schon selbst. Bin ja net ganz so blöd. Meine Surfaces sind jetzt fertig und funzen prima. Also keine Dirskriminierung bitte Smile

BTW, dein Tutorial habsch mir angeschaut, auch die Sache mit dem Deviceloss. Muss ich wirklich bei jedem Restore alle Texturen neu laden? Shocked Das wär ja zum Heulen.
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 15:14    Titel: Antworten mit Zitat

man muss es nicht, aber seit SP2 gibt es bei MANAGED-Objekten probleme damit. Nebenbei: die 1 Funktion ist nun echt keine Kunst und es ist Ordentlicher, denn dann weiß man ganz genau was passiert ist, was bei Managed nicht geschied. Wink

Kurz: Hat nur Vorteile.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 15:22    Titel: Antworten mit Zitat

Mit die 1 Funktion meinst du jetzt die wo alles neu geladen wird? Ich mein nur das dauert doch und eigentlich sind sie doch noch im Speicher...
Mit managed DX kenn ich mich überhaupt net aus. Wosn der Unterschied?
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 15:39    Titel: Antworten mit Zitat

Ich red net von DX Managed, was ich sowieso für einen Lacher halte sondern von dem Flag D3DPOOL_MANAGED.

Zum Restore: Wenn das Device verloren geht was beim ALT+Tabbing oder Moduswechsel idR. immer passiert (Ausnahmen gibt es je nach OS) gehen auch die Daten verloren die über das Device erstellt wurden, sprich: Texturen, VertexBuffer, Shader, IndexBuffer uvm. Bei dem Flag D3DPOOL_MANAGED können die Daten neu erstellt werden da Direct3D bzw. eher der Treiber die Daten verwaltet aber je nach Treiber oder sogar OS ist das nicht immer ordentlich oder unmöglich!

Das neuladen dauert paar Nanosekunden oder maximal 1-2 Sekunden und dafür ist es absolut sicher, das alles in Ordnung ging und es läuft was bei D3DPOOL_MANAGED nicht oft gewährleistet ist.

Und das Resetten der Daten ist in dem Tutorial so extrem möglichst einfach und komfortabel gehalten das es nicht mehr anders geht! Und deshalb einen "Aufstand der Faulheit" zu machen ist irgendwie... naja... bescheuert Very Happy

Das selbe verfahren gillt für OpenGL wenn der Rendering Context flöten gegangen ist muss man auch Texturen neu laden, Displaylisten neu Compilieren uvm. Smile Also wirklich, der 1 Aufruf in der WinMain und der darauffolgende automatisierte ablauf ist echt kein großer Aufwand sondern auch noch sehr ordentlich, oder? Wink

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 15:45    Titel: Antworten mit Zitat

Ah so. Sag das doch gleich...
Aber jetzt hab ichs kapiert. Ähm, aber bei Riesenprojekten, wenn ich zB Freelancer mir anguck, ist beim Wechsel alles sofort wieder da, wobei die Modelle und Texturen eigentlich angesichts ihrer Größe und Qualität recht lang dauern müüsten, auf jeden Fall mehr als ein paar Nanosekunden. Wieso dieses?

btw kann ich wenn mein programm alt+ctrl+del abblockt und sich aber aufhängt den Taskmanager aufrufen?
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 15:53    Titel: Antworten mit Zitat

Man kann die Daten bevor man sie zum Objekt erstellt erst in den RAM laden und dann das Objekt erstellen, später kann man auf die Daten im RAM zugreifen und muss sie nicht mehr von der Festplatte laden, das hat jedoch den Nachteil das der RAM von Anfang an mit Doppelten Daten vollgemüllt wurde obwohl die Daten schon auf der HDD sind. Ich warte lieber und lade die Daten von der HDD und bombe den RAM mit wichtigeren Daten zu als das Doppelte an Speicher zu verlieren wegen 1-2 Sekunden Wink

Wenn schon dann Ordentlich und dafür 1-2 Sekunden warten oder paar Nanos als Speicher zu verschießen.

Zu Deinem TaskManager: An diesen Prozessen sollte ein Spiel nicht dran Rumspielen! Der TaskManager ist für Ausnahmesituationen da und ein Spiel hat daran nichts zu tun, denn wenn Dein Spiel Crasht kann der User es nichtmal mehr über den Taskmanager beenden sondern muss Neustarten und Datenverlust in kauf nehmen! Das bedeutet im Klartext: Der User ist in dieser Situation "gefickt" und betitelt Dein Game als "Scheiße".

Ich denk mal das willst Du ja auch nicht Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 17:43    Titel: Antworten mit Zitat

Aber so könnte man den Devieloss verhindern Cool
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 17:48    Titel: Antworten mit Zitat

HomeLess_PunkDrummer hat Folgendes geschrieben:
Aber so könnte man den Devieloss verhindern Cool


Man sollte nicht versuchen es zu verhindern sondern froh sein, dass es das überhaupt gibt! Programme die dies unterdrücken (und ich benutze sehr viel Alt Tab und auch den Taskmanager) werden bei mir ausnahmslos gelöscht und als Scheiße deklariert Wink zurecht...
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 17:50    Titel: Antworten mit Zitat

Dafür ist ja der Taskmanager auch da. Richtig so. Wink
Aber das es deviceloss gint find ich net so toll...
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.02.2005, 17:57    Titel: Antworten mit Zitat

HomeLess_PunkDrummer hat Folgendes geschrieben:
Aber das es deviceloss gint find ich net so toll...


Nehmen wir mal an: Du spielst ein Rollenspiel das sehr komplex ist mit rätseln und kommst ohne Komplettlösung nicht weiter, gut diese Lösung ist dann im Internet auf DLH und Du möchtest sie nicht ausdrucken, verständlich! Da sie sehr wahrscheinlich sehr groß sein wird.

Also was machst Du? Drückst ALT+TAB! Gäbe es kein Device Lost hättest Du nun noch immer 90% Resourcenverbrauch an RAM und GraKa, 99% Resourcenverbrauch an CPU leistung und Du bräuchtest sehr lange um überhaupt den Internetexplorer zu starten, da der RAM noch immer mit den Texturen und Vertices zu kämpfen hat obwohl die für Dich in dem Moment scheiss egal sind.

Also wenn Du für sowas gerne unnötig Deinen RAM strappazieren willst, bitte! Ich fänd das nur blödsinnig, da diese Daten in dem Moment nicht gebraucht werden.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum