JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Alpha Sample für DirectDraw
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> News
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:21    Titel: Antworten mit Zitat

Wenn du einen 16 Bit Modus verwenden willst, wovon ich dringend abrate, muss du schauen, was für einen Modus die jeweilige Grafikkarte unterstützt R5G6B5 A1R5G5B5 usw.. Ist mühsam. Ich hätte nicht erwartet, dass das Programm nicht mit voller FPS läuft. Ich sehe aber auch auf meinem System, dass es mit 76 anstatt 85 (max. möglichen) FPS läuft. Finde ich schon erstaunlich. Ich befürchte die neuen Karten/Treiber sind nicht mehr so auf Blts optimiert.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:25    Titel: Antworten mit Zitat

Mal zu dem Pitch Werten zum Optimieren des Codes:
Ist der Pitch Wert bei jeder Oberfläche mit der gleichen Farbtiefe identisch?
Das würde doch sehr viel Zeit sparen, bei den städigen Abfragen von diesem kostbaren Wert und würde auch Speicher sparen, wenn man nur ein Pitch Variable im ganzen Programm für alle Surfaces hätte...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:29    Titel: Antworten mit Zitat

Hallo,

man kann nicht davon ausgehen, dass Pitch für alle Oberflächen gleich ist. Er ist aber für eine Oberfläche immer gleich. Es reicht also, ihn einmal zu lesen, z.B. zu Beginn des Programms.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:35    Titel: Antworten mit Zitat

Wieso rätst du von 16 Bit ab?

Bei der Downloadversion hatte ich auch mehr FPS(so ca. 40-60). Aber komischerweise habe ich jetzt(auch ohne Blendung) höchstens 35 FPS.

PS: Ich hab ne Elsa Victory Erazor LT GraKa und leider nur 8 MB SDRAM Sad
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:41    Titel: Antworten mit Zitat

Naja, eben wg. der Problematik, dass dieser Modus unterschiedlich von Grafikkarten behandelt wird und 16 Bit nicht so leicht zu handeln sind wie 32. Außerdem hast du bei der erstellung der Grafiken irgendwann das Problem alles auf 16 Bit runtersampeln zu müssen. Deine Grafikkarte ist tatsälich schon etwas in die Jahre gekommen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 04.08.2003, 12:56    Titel: Antworten mit Zitat

Na ja, das ist durch einen Leichtsinnsvällher passiert Embarassed
Ich hab im Konstruktor der DD-Klasse aus versehen und unbegründet die Farbtiefe mit 16 initialisiert. Dann kommt ja in der Initmethode die Einstellung der Farbtiefe. Und da würde man normalerweise zuerst versuchen 32 Bit einzustellen, dann 24 und zuletzt 16. Aber da ich Farbtiefe ststt mit 32 mit 16 initialisiert habe, hat er gleich 16 Bit genommen.
Und jetzt hab ich kein Bock mehr, das umzustellen(next Game, new Luck Laughing )
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 05.08.2003, 11:49    Titel: Antworten mit Zitat

Hi,

ich habe jetzt noch mal was über das Performanceproblem herausgefunden: Wenn ich die Anweisungen zum Zeichnen der Terrainquadrate herausnehme, habe ich vergleichsweise sehr hohe FPS.
Jetzt hab ich mal probiert, was passiert, wenn ich eine der beiden BltFast-Aufrufe auskommentiere. Die normale Drawfunktion sieht ja bei mir(ohne die paar if-Anweisungen) folgendermaßen aus:
Code:
 RECT SRect;
SRect.left   = Fx;
SRect.right  = Fx+Fbreite;
SRect.top    = Fy;
SRect.bottom =Fy+Fhohe;

//    Anweisung 1     Normales Blitten
DDHinterBuffer->BltFast(xpos,ypos,DDSpriteSurface[ss],&SRect,DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);

//    Anweisung 2     Blitten für Alphaberechnungen
DDAlphaSurface->BltFast(xpos,ypos,DDSystemSurface[ss],&SRect,DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY);

DDHinterBuffer ist der Backbuffer und ist, sowie das Surface DDSpriteSurface.
DDAlphaSurface ist das Surface im AGP-Speicher und DDSystemSurface ist das Surface im Systemspeicher, das die gleichen Pixel, wie DDSpriteSurface enthält.

Wenn ich jetzt die Anweisung 2(Blitten für Alphaberechnungen) entferne, dann habe ich schon höhere FPS(kleinste: 19). Wenn ich nun aber statt dessen die Anweisung 1(Normales Blitten) entferne, so habe ich(für 450MHz-Verhältnisse mit 8 MB SDRAM – Elsa Victory Erazor LT) traumhafte FPS(höchste: um die 50, kleinste: 21-24). Das wäre nun wirklich auszuhalten.
Nun wollte ich fragen, ob man da noch irgendwas optimieren kann? Muss man wirklich (Anweisung 2)in das Surface im AGP-Speicher kopieren, oder sollte man nicht lieber eines im Systemspeicher erstellen?
Ist das normal, dass Videospeicher in Videospeicher langsamer ist, als Systemspeicher in AGP-Speicher?
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 06.08.2003, 13:36    Titel: Antworten mit Zitat

wahrscheinlich die dümmste frage überhaupt, aber gibs das "Alpha Sample für DirectDraw" auch "für Direct3d" ?
_________________
"Denken ist Arbeit, Arbeit ist Energie und Energie soll man sparen."

"Theorie ist, wenn man alles weiss, aber nichts funktioniert.
Praxis ist, wenn man nichts weiss, aber alles funktioniert.
Realität ist, wenn nichts funktioniert und keiner weiss warum."

"Es gehört ein wenig Mut dazu nicht das zu tun was ALLE tun"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 06.08.2003, 13:38    Titel: Antworten mit Zitat

Steht das nicht im 2. Buch? In Direct3D ist es aber einfacher, du muss nur die Renderstates richtig setzen. Schau mal in der DX9 Doku, da ist es auch erklärt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

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

Christian Rousselle hat Folgendes geschrieben:
Steht das nicht im 2. Buch? In Direct3D ist es aber einfacher, du muss nur die Renderstates richtig setzen. Schau mal in der DX9 Doku, da ist es auch erklärt.


Wo steht das im zweiten Buch für 2D? Das fin ich nicht! Steht auch nicht im Stichwortverzeichnis.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 06.08.2003, 14:43    Titel: Antworten mit Zitat

Ich meine für 3D, ich dachte DarK meint das auch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 06.08.2003, 17:06    Titel: Antworten mit Zitat

Wie macht man jetzt eigentlich 75/25 Blendings?

Also so funzt das zum Beispiel bei mir nciht Sad
Code:

         float dest_percent      =   0.25;
         float source_percent   =   0.75;

         BlendRed   = (DestRed   *dest_percent)   * (SourceRed      *source_percent)/256;
         BlendGreen = (DestGreen   *dest_percent)   * (SourceGreen      *source_percent)/256;
         BlendBlue  = (DestBlue   *dest_percent)   * (SourceBlue      *source_percent)/256;

_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 06.08.2003, 18:19    Titel: Antworten mit Zitat

Code:

BlendRed   = (DestRed   *dest_percent)   * (SourceRed      *source_percent)/256;


Erstmal musst du die beiden Farbanteile addieren(jedenfalls beim additiven Shading ;). Dann ist da noch das Problem mit den Integers.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 14.08.2003, 14:48    Titel: Antworten mit Zitat

Hab das heute mal wieder versucht, aber eigentlich müsste das hier doch funktionieren?

Code:

BlendRed   = alpha * ( SourceRed - DestRed ) + DestRed;
         BlendGreen = alpha * ( SourceGreen - DestGreen ) + DestGreen;
         BlendBlue  = alpha * ( SourceBlue - DestBlue ) + DestBlue;


alpha beträgt ein Wert von 0.0f bis 1.0f.

Hier funktioniert das aber nur wenn alpha 0.0f, 0.5f oder den Wert 1.0f hat.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 14.08.2003, 14:51    Titel: Antworten mit Zitat

Benutzt du auch Real-Werte? Ich würde es erst ausrechnen und hinterher in Ganzzahlen casten.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> News Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
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