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

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

11

19.09.2003, 16:36

Nein, das kann nicht das Problem sein... Was machst du eignetlich, wenn die Zahl der benötigten Vertices die Größe des Vertexbuffers übersteigt?

Anonymous

unregistriert

12

19.09.2003, 16:59

Dann kommt ne Meldung, dass kein weiteres Objekt mehr hinzugefügt werden darf ;)

In refillVertexBuffer wird mit countNeededVertices() bestimmt, wie groß der VB sein muss und entsprechend angelegt. Falls es systembedingt eine Obergrenze für den VB geben sollte, dürfen halt nicht mehr Vertices hinzugefügt werden.

Die Anwendung soll kein Spiel werden, sondern eine Art CAD-Programm. Daher ist es nicht so schlimm, wenn das Programm mal ne Sekunde hängt, um den VB neu zu füllen. Mit DrawUserPrimitive hat es aber bei jedem Rendern gedauert und das hoffe ich mit einem VB abzustellen.

Otto

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

13

19.09.2003, 17:55

Wenn ich das richtig sehe, erstellst du bei jedem Aufruf von refillVertexbuffer einen neuen Vertexbuffer! Das kostet doch irre viel Performance oder sollte das in C# etwa anders sein (was ich mir nicht vorstellen kann) !!!

Anonymous

unregistriert

14

19.09.2003, 18:32

Da könntest Du recht haben. Deswegen will ich ihn ja auch nur dann neu erstellen, wenns notwendig ist.

Otto

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

15

19.09.2003, 18:34

Wie oft ist es denn so ungefähr "notwendig"?
Wäre es nicht besser, einen ganz großen Vertexbuffer zu verwenden, der dann jeweils nicht vollständig genutzt werden muss?

Anonymous

unregistriert

16

20.09.2003, 01:46

Also noch mal zu Mitschreiben (tschuldigung bin voll (Uhrzeit !!): Ein VertexB8uffer soll für viel Objekte verwendet werden. Wenn ein Objekt merkt, dass es mit seinem zugewiesenen Platz nicht auskommt, soll es sich melden und das Neuzeichnen des VB beantragen. Der VB zeichnet sich neu mit den aktuellen Objekten.

Dies soll aus Performancegründen möglichst selten passieren, aus oben geschilderten Gründen ist aber nichts sichtbar, wenn der VB nich neu gezeichnet wurde, Wie kann man ohe neugezeichneten VB diesen auf den Bildschirm bringen?

Meöde mich morgen wieder nüchtern

so long

Otto

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

17

20.09.2003, 11:11

Warum setzt du den Vertexbuffer, wenn er nicht neu gezeichnet wurde, denn noch mal als Datenstrom 0? Vielleicht liegt es ja daran?

Anonymous

unregistriert

18

20.09.2003, 12:44

In diese Richtung hab ich auch schon mal gedacht, am Montag probier ich das mal aus.

Vielleicht kennt sich jemand damit aus, was bei SetStreamSource genau passiert bzw. wann /wie oft man es einsetzen sollte?

Otto

Werbeanzeige