JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

2D-Grafik-Optimierung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 31.08.2003, 17:45    Titel: 2D-Grafik-Optimierung Antworten mit Zitat

Ich habe festgestellt, dass bei der Geschwindigkeit ausschließlichvon der Anzahl der Sprites zählt, anstatt der Pixelmenge, die man auf dem Bildschirm ausgibt. So sieht es zumindest bei Direct X 9 aus. Was mach ich denn, wenn z.B. ein Spiel programmiere, worin 100 Einheiten auf dem Radatr sichtbar sein sollen, und die Raumschiff mit unmengen an Lasern schießen?? Die Pixelmenge ist gar nicht so groß. aber die Anzahl der sprites steigt locker über 1000. Ich habe eine Geforce FX 5600 und einen Athlon 1800+. Selbst dieser Rechner stößt dabei schnell an die Grenzen.
Gibt es da spezielle Techniken, wie man viele Sprites unterbringen kann?
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: 31.08.2003, 17:50    Titel: Antworten mit Zitat

Du könntest alles Sprites, die die gleiche Textur benutzen aufeinmal rendern lassen(über Indexbuffer). Desweiteren kannst du viele kleine Spritetexturen in eine große Textur packen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 31.08.2003, 18:12    Titel: 2D-Grafik-Optimierung Antworten mit Zitat

Das mit dem "aufeinmal rendern" kam mir auch in den sinn. Wie soll das aber praktisch aussehen? Die Laserschüsse haben alle völlig variable positionen und Richtungen. Außerdem benutze ich die Funktion "Draw" zum zeichnen und keine Quads aus dem 3Dbereich.

Kleiner Ausschnitt aus dem Programmcode:
Sprite->m_lpSprite->Draw(Sprite->m_lpTexture,
&SpriteRect,
&Sprite->m_vScale,
&Sprite->m_vRotationCenter,
Sprite->m_Rotation,
&Sprite->m_vPosition,
0xFFFFFFFF);
Das ist die vereinfachte Funktion nur für 2D-sprites, die es seit Direct X 9 gibt. Wenn du diese nicht kennst, kannst mir zumindest mal zeigen wie du dir das mit dem Indexbuffer vorstellst. Viele kleine Texturen in ein große reinpacken ist ne nette idee, aber nicht umsetzbar, weil eben die positionen und orientierung beliebig sind.
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: 05.09.2003, 21:26    Titel: Antworten mit Zitat

Ok es hängt schon mit der PixelMenge zusammen, doch ist relativ gering zu dem Locken und Unlocken der Surfaces. Deshalb kann ich dir nur raten die Schüsse als normale Striche darzustellen und das indem du die Laserschüsse manuell malst. Bei dieser Variante lockst du nur einmal den Backbuffer zeichnest alle Laserschüsse und bist fertig!

Wenn du willst kann ich dir das noch als Source-Code zeigen. Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 11:46    Titel: Antworten mit Zitat

Kann man nicht über Quads irgendwie mehrere Sprites an einem Stück zeichen, ohne für jedes Sprite die Oberfläche sperren zu müssen? Wäre nicht schlecht, wenn du dein Tutorial freigeben könntest.
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 -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
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