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

1

26.12.2003, 13:56

Vertexbuffer

Was haltet ihr davon alle Vertices in einen Vertexbuffer zu packen.

Und eine eigene Funktion zu schreiben die aus den Vertexbuffer die Vertixes rausnimmt und rendert.

Weil es ja nicht so gut sein soll kleine Verttexbuffer einzurichten?

Also es wird nur einen einzigen Vertexbuffer geben. Wo alle Objekte gespeichert sind.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

26.12.2003, 14:50

NVidia empfiehlt eine Größe von 64 KB pro Vertex-Buffer. Wenn einer voll ist, fängst Du den nächsten an, das dürfte ein gutes Prinzip sein.

3

27.12.2003, 15:59

was soll das bringen.? wenn du dann eine eigene funktion hast die die vertex-daten
aus dem vb hohlt, dann bringt dir dein vb höchstens einen performance-verlust. dann benutzt lieber die UP-funktionen.

Anonymous

unregistriert

4

27.12.2003, 18:27

Das ist der richtige Weg. Richtig angewand bringt es sogar einen Peformanceschub.

Ich weiss nur nicht wie man das genau implementiert. ;D

5

27.12.2003, 18:29

also das das der richtige weg ist wage ich stark zu bezweifeln, zumindest
so wie dus beschreiben hast

Anonymous

unregistriert

6

27.12.2003, 18:36

Zitat von »"David Scherfgen"«

NVidia empfiehlt eine Größe von 64 KB pro Vertex-Buffer. Wenn einer voll ist, fängst Du den nächsten an, das dürfte ein gutes Prinzip sein.


das hat David gesagt. :huhu:

Es währe sehr nett wenn einer das genauer erklären könnte wie man sowas macht. Oder ein Link zu einem Tutorial dazu geben.

In Deinem Beitrag befinden sich noch Fehler.
Bitte bearbeite die rot markierten Stellen und lösche diesen Text.

Anonymous

unregistriert

7

27.12.2003, 18:37

an die Forumsoftware. Danke für den Hinweis :D

8

28.12.2003, 23:13

Ist doch ganz einfach. Du nimmst eine Liste, z.B. std::vector, und erzeugst in dieser Liste immer einen neuen VertexBuffer mit einer groesse von ca 64KB, packst ihn voll mit Daten und wenn er dann voll ist, kommt der naechste VB in die Liste.

Ich weis jedoch nicht wie genau das Sinn machen soll. Was jedoch absoluter mist ist, alles in einen VertexBuffer zu Packen, der dann so gross wird, das er nicht mehr im Video-Speicher landet sondern in Hauptspeicher und das Kopieren von da aus in den VRAM kostet unendlich viel Zeit. Hmm....so betrachtet ist es schon ganz Praktisch wenn man die Empfehlung von NVidia nimmt.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

9

29.12.2003, 21:17

Du füllst den Vertexbuffer. Dann füllst es den Vertexbuffer mit den Daten des zweiten Objekt. Und so weiter.

Es ist schneller. (echte) Profis arbeiten nur so.

10

29.12.2003, 21:35

Aber warum sind es denn am besten grad die 64KB? Ich mein das ist ja nicht viel. Wenn man einen Vertex mit nur Position, Normale und Diffuse Farbe hat, sind das schon 36Byte. Was dann rund 1770 Vertice sind, die man Speichern kann. Ein Modell hat aber schon mal schnell 20.000 Dreiecke also 60.000 Vertice. Dann breuchte ich schon alleine fuer ein Modell Rund 30 VertexBuffer.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige