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

Anonymous

unregistriert

11

10.08.2006, 15:11

Black-Panther
Du denkst zu Analog. Wo ist das Problem? Ich hab auch haufenweise Animationen und ich locke Maximal (wenn überhaupt) nur 1x einen VertexBuffer in einem Frame.

Na überleg mal, wie mach ich das wohl? :roll:

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

12

10.08.2006, 15:35

TextureCoordstransformationen... ^^ kk
Hat ich vergessen, dass es die auch noch gibt ;)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Anonymous

unregistriert

13

10.08.2006, 16:08

Black-Panther
Währe eine Möglichkeit, jedoch noch immer zu langsam.

Nö, die Antwort ist so extrem Simpel: Für jedes Tile in einem Tileset habe ich einen Vertexbuffer. Rendere ich ein bestimmtes Tile setze ich den jeweiligen VertexBuffer und gut ist. :lol:

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

14

10.08.2006, 16:17

Lol... ok... ^^ Aber dann sind alle Animationen in diesem Set synchron... sieht das dann nicht komisch aus? (zB bei einem Partikelsystem?)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Anonymous

unregistriert

15

10.08.2006, 16:21

Black-Panther
Wie Set Synchron?!

Wenn ich ne Textur lade übergebe ich optional die Dimensionen der eines Tiles, daraus werden dann N Vertexbuffer generiert und gut ist. Also ich kann ne Textur mit 32x32 großen Tiles haben oder 20x20. Da gibbet kein Problem. Und bei Animationen sind i.d.R. die Tiles immer gleich groß.

Phili

unregistriert

16

10.08.2006, 16:25

@nix da

Zitat

Ruckelpower

Ich wage ernsthaft zu bezweifeln, dass es anfängt zu ruckeln, wenn man Sprites mit DrawPrimitiveUP zeichnet. Das dürfte bei den paar Dreiecken absolut nichts ausmachen.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

17

10.08.2006, 16:25

Mit "Set" meinte ich dein "Tileset"...
Hast du aber für jeden Sprite einen eigenen VertexBuffer? Und für jeden animierten Sprite eine ganze Palette von Vertexbuffer? Ob das dann immer noch schneller ist, als den Vertex frisch zu verändern und mit DrawPrimitiveUP diese 2 Poly zu zeichnen?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Anonymous

unregistriert

18

10.08.2006, 16:35

Phili
Mach erstmal Performancetests, ich habe in dem Bereich genug Performancetests gemacht und ne gute Lösung gefunden. UserPointer sind immer lam - da gibt es kein Gegenurteil zu.

Black-Panther
VertexBuffer setzen ist bei Mengen schneller als VertexBuffer locken, verändern, Daten übern Bus senden usw. Wir reden hier nicht von einem sondern von mehreren Hundert bis Tausend Polys. Da ist das was nicht mehr über den Bus gesendet wird (der VB i.d.R.) schneller.

Jedes Locken kostet Zeit.

50 VertexBuffer setzen ist schneller als 10 VertexBuffer locken und verändern.

Phili

unregistriert

19

10.08.2006, 16:39

@nix da

C-/C++-Quelltext

1
Wir reden hier nicht von einem sondern von mehreren Hundert bis Tausend Polys

Ich glaube nicht, dass das ziel ist, 500 sprites gleichzeitig darzustellen :?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

20

10.08.2006, 16:43

Damit wäre es ja im Prinzip ideal für ein Partikelsystem... nur ist dabei dann das Problem dass jedes BB eine andere Position hat, dh für 1000 Partikel hätte man (bei einer kleinen Animation) 4000 VB und 1000 Transformationsmatrizen.
D.h man müsste für jeden Renderdurchgang 1000 VB setzten und noch 1000x die Transformationsmatrix ändern!
Ist das dann auch noch schneller (ich weiß es nicht, hab keine Tests gemacht...)
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Werbeanzeige