JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

[Direct3D] Performance-Verbesserung (?) mit Vorpuffer
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 16.02.2007, 09:51    Titel: Antworten mit Zitat

Könntest du nicht per Algo ein TriangleFan auflösen und die Art wie es normalerweise verarbeitet würde in deinen Vorpuffer schreiben?

zB wenn man zB das Triangle fan aus der DX Doku (Stichwort: "Triange Fan") hat wird einfach jedes zu rendernde Dreieck in deine Liste eingetragen:

1,2,3, 1,4,3, 1,5,4, 1,6,5, 1,7,6

LineLists sollten sich genauso behandeln lassen, nur das du darauf acht geben musst als RenderTyp D3DPT_LINELIST anzugeben, wenn du das nicht willst bleiben dir da nur Tricks zur Auswahl.

Aber ehrlich gesagt verstehe ich die schwere deines Problemes nicht so ganz. Wieso zB brauchst du:

CPP:
DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );


Um ein Quad zu rendern?
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 16.02.2007, 11:56    Titel: Antworten mit Zitat

hm,

also da sich die objekte während der spielzeit ( also main loop ) zum rendern eintragen, müsste ich den algo da unterbringen, und ich glaube das würde dann zu sehr auf die performance gehen.

Fallen hat Folgendes geschrieben:

Aber ehrlich gesagt verstehe ich die schwere deines Problemes nicht so ganz. Wieso zB brauchst du:

CPP:
DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );


Um ein Quad zu rendern?

natrürlich brauche ich das nicht, um ein quad zu rendern^^ Das war ein Missverständnis. Damit wollte ich nur das Grundkonzept erläutern, nämlich dass möglichst viele primitive in einem DrawPrimitive zusammengefasst werden. Bei der 0 im 2. call hab ich mit verschrieben, es hätte ( D3DPT_TRIANGLESTRIP, 4, 2 ); heißen müssen. Da das aber eh nur ein Beispiel war, und so nicht im code vorkommen wird( da eben die calls zu einem zusammengefasst werden ), hab ich das da net so genau genommen

Ok, die line strips kann ich per algo in line lists umwandeln, das dürfte auch während der render zeit kein so großer aufwand sein. Nur wie gesagt bei triangle fans... ich denke ich werde da so eine mittellösung wählen; dass man die zwar verwenden kann, aber die vertexdaten dann unveränderbar sind, sodass der algo noch zur initialisierungszeit durchlaufen werden kann.

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 16.02.2007, 12:09    Titel: Antworten mit Zitat

Wenn du die triangle fans auflöst wie ich oben schon beschrieben habe sollte es doch eigentlich funktionieren, oder?
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 16.02.2007, 15:38    Titel: Antworten mit Zitat

funktionieren schon, aber mächtig auf die performance schlagen. Wenn dieser algo in jedem Frame ausgeführt werden muss, ist das ein ganz schönes hin und her kopieren... Deshalb ja der Kompromiss, dass die Fans nur in einer Position bleiben, damit die direkt zu anfang kopiert werden und dann so bleiben. Daher werde ich wohl zukünftig keine Fans verwenden, sondern diese Methode nur für den notfall lassen und alle ursprünglichen Fans zu Lists konvertieren.

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
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 Zurück  1, 2
Seite 2 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