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

flux

Treue Seele

  • »flux« ist der Autor dieses Themas
  • Private Nachricht senden

1

08.08.2006, 18:33

Sprites und der Vertexbuffer

Hallo.
Ich hab mal eine Frage zur Performance von Sprites(ja schon wieder Sprites^^) usw. (2D Sprites mit Direct3D) Also ich überleg wie ich das am besten machen könnte mit den Vertexbuffern.
Im Moment habe ich für jedes Sprite einen eigenen VB. Das ist natürlich total langsam. Deshalb hab ich mal überlegt/gesucht wie man das am Besten machen könnte.
Also dann würd ich einen großen statischen VB nehmen, wo die ganzen Daten reinkommen. Allerdings müsste ich die Daten jedesmal neu reinladen, wenn sich die Daten bzw. auch nur eine davon ändert. Ein dynamischer VB lohnt sich aber hier nicht wirklich, hab ich schon gelesen. Außerdem müsste man die Daten auch noch Ordnen nach Texturen und und und...
Oder sollte ich lieber für jede Textur einen VB erstellen, wo dann die Daten reinkommen? Das ganze Gesuche und Überlegen hat mich durcheinander gebracht.
Habt ihr eine Idee, wie ich das machen könnte?

Anonymous

unregistriert

2

08.08.2006, 18:43

Dynamischer VB, Relative Vertexpositionen eingeben, beim Rendern mit der Transformationsmatrix verschieben - Fertig.

So lockt man nur 1x (nämlich beim Programmstart) den VertexBuffer und gut ist.

3

09.08.2006, 09:11

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 17:43)


Phili

unregistriert

4

09.08.2006, 12:04

Also ich hab das so verstanden: Er will sämtliche Sprites in einen VertexBuffer machen. Und da hatte nix da treffend den Vorschlag, in den VertexBuffer bräuchte man doch eigentlich nur ein Sprite zu speichern. Das kännte dann jeweils mit unterschiedlichen World-Matrizen an die richtige Position gerückt werden.

flux

Treue Seele

  • »flux« ist der Autor dieses Themas
  • Private Nachricht senden

5

09.08.2006, 16:49

Hmm...ok. Also d.h. ich mach das jetzt so:
-Direct3D starten und othogonale Projektion.
-Dynamischen Vertexbuffer erstellen und die vertexdaten für 1 Sprite reinkopieren.
-Beim Rendern eines beliebigen Sprites die Transformationmatizen mit der Worlmatrix multiplizieren, Textur setzen und DrawPrimitive() aufrufen.

Hab ich das so richtig verstanden? Kann ich da nicht auch einen statischen VB nehmen? ok, könnte ich ja mal ausprobieren, dann seh ich's ja.

6

10.08.2006, 09:56

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 17:42)


Phili

unregistriert

7

10.08.2006, 12:04

@FOGX
Dann machs halt mit DrawPrimitiveUP

8

10.08.2006, 12:11

.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FOGX« (15.09.2010, 17:39)


Anonymous

unregistriert

9

10.08.2006, 14:26

Zitat von »"Phili"«

@FOGX
Dann machs halt mit DrawPrimitiveUP
Ruckelpower.

FOGX
So sagte ich es doch? ^^ Die absolute Position ist in der Translationsmatrix, die Relative sind die Vertexkoordinaten.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

10

10.08.2006, 14:55

Also ich finde das im VertexBuffer ist ein Problem... BB animiert man ja meinstens... daher muss man den VB immerzu sperren... das ist ja noch mehr ruckelpower als DrawPrimitiveUP...
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Werbeanzeige