Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

19.01.2008, 17:38

Danke, habe gar nicht mit so vielen, guten Antworten gerechnet. ;-)

Also, wenn ich das richtig verstehe, kann ich es nur noch optimieren, wenn ich weniger das Bildpufferformat senke.. Also weniger Traffic entsteht..


Zitat von »"Abrexxes"«


ich weis jetzt nicht wie du deine Tile Map aufbaust. Wahrscheinlich löschst du denn Bildschirm nach jedem Durchgang und baust Ihn neu auf was in einer "normalen" 3D Szene nicht der Fall ist ist, hier werden die Objekte nur einmal gesetzt. Bei 2D ist das natürlich zum Teil nötig wegen dem "Prinzip" von 2D,


Das verstehe ich nicht ganz, was du damit meinst. In einer 3D Szene wird doch auch alles neu gezeichnet, oder wie meinst du das?
Also ich lade die ganze Tilemap in einen Vertexbuffer. (Also mehrere Tilempas in mehrer VB's) und zeichne dann nur diesen Vertexbuffer in jedem Frame.

Das würde ja in etwa dem entsprechen, wo meine Framerate in die Höhe geschnellt ist, als ich das so gemach habte. ;-)

Zitat von »"Abrexxes"«

"grossen" Megatiles.


Also hätte ich folgende Möglichkeiten (bei konstanter Anzahl der Tiles):
- Bildpufferformat verringern
- Geringere Auflösung der Tiles

Um die Framerate noch zu vergrössern.
Habe gerade nachgeschaut. Hurricane hat Tiles von 40x40 Pixel und bei etwa der gleichen Grösse, wie meiner Tilemap. Dann kommt auch etwa die Rechnung der Framerate recht nahe ran. :D

Auf all Fälle vielen Dank.

PS.
Hmm, wo kann ich die genauen Werte für meine Grafikkarte nachschauen (Also MEINE Werte, nicht nur einfach der GK)?

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

12

19.01.2008, 18:26

aida oder everest home edition zeigt dir genau die gemessenen werte an und vieles mehr wie durchsatzrate und und und..

Sicaine

unregistriert

13

19.01.2008, 21:50

Du koenntest ja mal nen anderes Prinzip verfolgen: Erhoeht zwar nicht deine Framerate, ist mir aber grad bei der Diskussion eingefallen. Du koenntest es so umbauen, dass nur im FB gezeichnet wird, wenn gezeichnet werden muss und nur dort wo gezeichnet werden muss. Hat den Vorteil, dass aufn Laptop sehr viel Leistung gespart werden kann. Nachteil: Ist bisl tricky zu wissen wann man wo was wie nachzeichnen muss.

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

14

20.01.2008, 15:24

Zitat von »"TrommlBomml"«

aida oder everest home edition zeigt dir genau die gemessenen werte an und vieles mehr wie durchsatzrate und und und..


Das kann man da auslesen?? - Ok, dann lade ich es mir Everest wiedermal runter..
Hatte es mal, aber irgenwie verpennt es wieder zu installieren.. ;-)

Zitat von »"Sicaine"«

Du koenntest ja mal nen anderes Prinzip verfolgen: Erhoeht zwar nicht deine Framerate, ist mir aber grad bei der Diskussion eingefallen. Du koenntest es so umbauen, dass nur im FB gezeichnet wird, wenn gezeichnet werden muss und nur dort wo gezeichnet werden muss. Hat den Vorteil, dass aufn Laptop sehr viel Leistung gespart werden kann. Nachteil: Ist bisl tricky zu wissen wann man wo was wie nachzeichnen muss.


Nette Idee, hatte ich am Anfang meiner Spieleprogrammierer Zeit gedacht, dass man das so macht.. ;-) - Aber wie ich schnell gemerkt habe auch recht kompliziert... Aber das wäre mir zu viel Aufwand für "nichts"..

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

15

20.01.2008, 19:33

joa das is eigl ausreichend, wenn du schon bestätigt bekommst das da im allgemeinen nicht mehr viel rauszuholen is, dann kannst du daov ausgehen, dass du eigentlich ganz bdenkenlos weitermachen kannst.

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

16

24.01.2008, 22:01

Also ich muss mich nochmal zu Wort wenden.

Es ist jetzt so, dass ich wenn ich normal 100 Sprites rendere (nur das) auf 300 FPS runterkomme. Ohne diese 100 habe ich 1700 FPS

Das kann es doch nicht sein, wenn ich alles auf einen Rutsch rendere?

Das heisst, dass ich zuerst mal den VB mit den Sprites (also 2 Dreiecke /Sprite) fülle und dann den VB locken, Textur setzen und rendern.
Das kann doch gar nicht so langsam sein für 200 Dreiecke, oder?
Die Transformation der Vertices führe ich von Hand durch, da ich ja keine Matrix setzen kann für die einzelnen Sprites.

Edit:

Ok, es ist nicht so. Ich habe es jetzt in einem anderen Projekt geteste und dort habe ich immernoch so um die 1600 FPS, wenn ich den Punkt 100 mal rendere.. Das muss eine Einstellung im VC++ 2008 sein.. Jemand gerade ne Idee, welche? - Sonst muss ich mich wieder dumm und dämlich suchen... :(

Edit Edit:
Verdammt. :oops:
Jetzt hat jeder offiziell die Erlaubnis zu mir nach Hause zu kommen und mir eins zu schlagen...
anstatt jetzt zu erklären, was ich falsch gemacht habe gibts ein wenig (Pseudo)Code:

C-/C++-Quelltext

1
2
3
4
5
6
for (int  i = 0; i < 100 ; i++)
{
::BeginBatch
::RenderSprite
::EndBatch
}

Ich denke, dass das Verständlich ist....

jojendersie

Frischling

Beiträge: 47

Wohnort: Berlin

  • Private Nachricht senden

17

01.02.2008, 10:59

Nicht immer liegt die Geschwindigkeitsbegrenzung bei der Grafikkarte. Wenn der Prozessor nicht hinterherkommt mit Befehlen senden, kann die Grafikkarte auch nur warten. Ich hab zum Teil 200-300% (ROAM-Terrain) mehr fps geschaft, indem ich dem Prozessor die Arbeit veringert habe.

Kann es sein, dass du in deinem einen Projekt den Prozessor mit irgentwelchen Berechnungen zu den Sprites lamlegst?

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

18

01.02.2008, 17:42

Ja, auf diese Idee bin ich gestern auch gekommen. In der Tat lasse ich die
Vertices manuel berechnen, da ich die Transformationspipeline für das
Batching ja nicht nutzen. Das heisst, dass ich da mit den Vertexshader
noch was rausholen könnte.
Aber danke für die Idee. :D

Werbeanzeige