|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.02.2007, 09:51 Titel: |
|
|
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 |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 16.02.2007, 11:56 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.02.2007, 12:09 Titel: |
|
|
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 |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 16.02.2007, 15:38 Titel: |
|
|
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 |
|
|
|
|
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
|