Delphi-PRAXiS
Seite 16 von 36   « Erste     6141516 171826     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Shape Wars - Version 2.0.0 (https://www.delphipraxis.net/159339-shape-wars-version-2-0-0-a.html)

EWeiss 14. Apr 2011 18:58

AW: Shape Wars - Version 1.0
 
Zitat:

Und EWeiss...scheint so als würdest du dich mit OpenGL relativ gut auskennen, hätte da 1-2 Performancetechnische Fragen (die auch schon etwas weiter gehen als das was man auf DGl lernt), wäre super wenn ich dir die stellen könnte
Wie du schon sagst relativ ..
Wenn man sich lange nicht mehr damit beschäftig vergißt man vieles ob ich da eine große Hilfe sein kann
mag dahin gestellt sein.

Eine Visualisierung zu erstellen mit ein paar aufgeklatschten OpenGl Windows
ist mit sicherheit nicht mit deinem Projekt zu vergleichen.

Lossy oder littleDave wären da die richtigen Ansprechspartner. :)

gruss

Aphton 14. Apr 2011 19:23

AW: Shape Wars - Version 1.0
 
Oder du könntest deine performancetechnische Fragen auch hier reinstellen.

EWeiss 14. Apr 2011 19:25

AW: Shape Wars - Version 1.0
 
Zitat:

Zitat von Aphton (Beitrag 1095161)
Oder du könntest deine performancetechnische Fragen auch hier reinstellen.

jo dann können mehrere drüber schaun..

gruss

Edlmann 14. Apr 2011 19:51

AW: Shape Wars - Version 1.0
 
Erste Frage die ich im Sinn hatte ist, ob es performanter ist, für jeden Gegner neu eine Textur zu binden und den Gegner zu zeichnen (wobei ich dann ja meine Liste von Gegner nur einmal durchgehen müsste) oder ob es sinnvoller ist, immer nur eine Textur zu binden, diesen Gegnertyp zu zeichen, und dann die Textur zu wechseln (womit ich meine Liste im Moment 5 mal durchgehen muss - für jeden Gegner einmal)?

Ich habe auf DGL das gerücht gehört, dass man Texturwechsel vergleichen soll. Bloß ist es das an dieser Stelle wert? Ich muss ja schließlich deutlich mehr CPU-Aufwand treiben...

P.S.: @Bug: Joypad unterstützung kommt doch bald, ein Kollege hat mir eins ausgeliehen ;)

P.P.S.: Danke an alle für das Feedback, ist echt super zu sehen dass dieses (anfangs noch kleine) Projekt gut ankommt ;)

EWeiss 14. Apr 2011 20:07

AW: Shape Wars - Version 1.0
 
Zitat:

Erste Frage die ich im Sinn hatte ist, ob es performanter ist, für jeden Gegner neu eine Textur zu binden und den Gegner zu zeichnen (wobei ich dann ja meine Liste von Gegner nur einmal durchgehen müsste) oder ob es sinnvoller ist, immer nur eine Textur zu binden, diesen Gegnertyp zu zeichen, und dann die Textur zu wechseln (womit ich meine Liste im Moment 5 mal durchgehen muss - für jeden Gegner einmal)?
Wenn du die Texture an einer liste bindest so wie ich das mit meinem TextureLoader (Array of Texture) mache
spielt die performance keine rolle wenn es dir um geschwindigkeit geht da diese zur jeder zeit abrufbar sind.

Beim Textureloader von Sulako bist du nun mal gebunden und kannst nicht mal so einfach eine Texture unmerklich wechsel.

Zitat:

Ich habe auf DGL das gerücht gehört, dass man Texturwechsel vergleichen soll. Bloß ist es das an dieser Stelle wert? Ich muss ja schließlich deutlich mehr CPU-Aufwand treiben...
Warum willst du hier was vergleichen du gibst einfach die Texture im Array an und fertig.

Um Texturen einzuladen benötigst du keine CPU.. bzw .. hast keine CPU auslastung.
In meinem Plugin verwende ich (mit meinem Textureloader) eine AVI Datei wo jedes Frame
einzeln in eine Texture gewandelt wird und das in Realzeit.

CPU := CPU <> 0 ;)

PS:
Das AVI ist 24MB groß da kannst dir vorstellen wieviele Frames dort enthalten sind.
gruss

Aphton 14. Apr 2011 20:08

AW: Shape Wars - Version 1.0
 
Grundsätzlich sollte man Texturewechsel immer meiden. Dein Code sollte darauf ausgerichtet sein, dass er gleich mit einem Durchlauf alles ohne Texturwechsel zeichnen kann.
Dh. gruppiere einfach Entities mit der gleichen Texture ID ala~
Delphi-Quellcode:
TTextureEntities = record
  TextureID: DWord;
  Entities: Array of Pointer; // Pointer = Klasseninstanzen
end;

// oder noch besser

TTextureEntities = class(TList)
public
  property TextureID: DWord; // strg+shift+c
  procedure Render();
end;
{Items[] beinhaltet dann die Instanzen; per Add/Delete/... kann es nun verwaltet werden}
EDIT:
@EWeiss
Du weißt aber schon, dass Texturen auf den VRam geladen werden und wenn dieser Speicher nicht allzu groß ist, es zu Fehlern führen wird?
Heutzutage gibts noch Rechner, die < 64 mb Video RAM haben!

Wenn so ein AVI Video 24 Frames/Sekunde hat und eine Länge von etwa 1 Min und pro Frame etwa eine Auflösung von 640*480*3 (RGB; unkomprimiert 900kb; komprimiert ~ 80 kb [JPEG Komprimierung]), dann wären das etwa 80 * 24 * 60 ~ 112,5 mb.

Damit hättest du ein Problem!

EWeiss 14. Apr 2011 20:10

AW: Shape Wars - Version 1.0
 
Zitat:

mit der gleichen Texture ID
Mit sicherheit nicht.

gruss

BUG 14. Apr 2011 20:14

AW: Shape Wars - Version 1.0
 
Zitat:

Zitat von Edlmann (Beitrag 1095097)
die auch schon etwas weiter gehen als das was man auf DGl lernt

Zitat:

Zitat von Edlmann (Beitrag 1095174)
Erste Frage die ich im Sinn hatte ist, ob es performanter ist, für jeden Gegner neu eine Textur zu binden und den Gegner zu zeichnen (wobei ich dann ja meine Liste von Gegner nur einmal durchgehen müsste) oder ob es sinnvoller ist, immer nur eine Textur zu binden, diesen Gegnertyp zu zeichen, und dann die Textur zu wechseln (womit ich meine Liste im Moment 5 mal durchgehen muss - für jeden Gegner einmal)?

Bist du sicher, dass du über die DGL-Wiki hinaus bist :stupid:

Aber Gruppieren sollte geht sicher in die richtige Richtung.
Wie wäre es mit unterschiedlichen Listen für die Gegner?

EWeiss 14. Apr 2011 20:16

AW: Shape Wars - Version 1.0
 
Zitat:

Zitat von BUG (Beitrag 1095183)
Zitat:

Zitat von Edlmann (Beitrag 1095097)
die auch schon etwas weiter gehen als das was man auf DGl lernt

Zitat:

Zitat von Edlmann (Beitrag 1095174)
Erste Frage die ich im Sinn hatte ist, ob es performanter ist, für jeden Gegner neu eine Textur zu binden und den Gegner zu zeichnen (wobei ich dann ja meine Liste von Gegner nur einmal durchgehen müsste) oder ob es sinnvoller ist, immer nur eine Textur zu binden, diesen Gegnertyp zu zeichen, und dann die Textur zu wechseln (womit ich meine Liste im Moment 5 mal durchgehen muss - für jeden Gegner einmal)?

Bist du sicher, dass du über die DGL-Wiki hinaus bist :stupid:

Aber Gruppieren sollte geht sicher in die richtige Richtung.
Wie wäre es mit unterschiedlichen Listen für die Gegner?

Einfaches Array für Texturen reicht vollkommen aus.
Listen sind langsaaaaammm.

gruss

mleyen 14. Apr 2011 20:20

AW: Shape Wars - Version 1.0
 
TList ist intern ein array :)

Die Texte flimmern ja immernoch immer mehr je weiter man kommt :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.
Seite 16 von 36   « Erste     6141516 171826     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz