|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gombolo Mini JLI'ler
Anmeldedatum: 25.11.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 16.10.2007, 10:20 Titel: Wozu mehrere Vertexströme? |
|
|
Hallo,
ich versuche zu verstehen wozu man mehrer Vertexströme brauchen kann. Da lese ich in einem Text das man mit einem Vertexbuffer die Geometrie und mit einem zweiten Vertexbuffer die Texturkoordinaten zum rendern schicken kann. Wozu? Ich könnte doch die Texturkoorinaten auch mit der Vertexstruktur übergeben. Also wozu gibt es die Möglichkeit mehrer Vertexströme zu verwenden?
Bezieht sich auf DirectX ab Version 8 |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 16.10.2007, 12:09 Titel: |
|
|
Viel Ahnung hab ich jetzt auch net.
Aber angenommen, du würdest, hm, ein Objekt per CPU animieren wollen. Du würdest alle Positionen neu berechnen und an die Grafikkarte schicken um sie zu rendern. Dann musst du mit mehreren Strömen die Texturkoordinaten nicht erneut schicken, was eine Menge Platz sparen sollte.
Ich weiß nicht ob das überhaupt möglich ist, aber wenn man mehrere Indexbuffer haben könnte, dann könnte man auch enorm Platz sparen indem man bei einem Würfel wirklich nur 8 Positionen hat, 6 Normalvektoren und 24 Texturkoordinaten (4 Pro Seite, mal 6 Seiten).
Ansonsten müsste man 24 Positionen, 24 Normalvektoren und 24 Texturkoordinaten(paare) nehmen was eine ganze Menge mehr Speicherplatz bedeuten würde. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 16.10.2007, 14:52 Titel: |
|
|
Mal ein ganz hervorragendes Beispiel aus meiner 3D-Engine:
Angenommen du schreibst einen Loader für das Quake II Modelldateiformat (*.md2). Dieses Format verwendet eine recht veraltete Technik um die Animation zu erzeugen. Man hat für jeden einzelnen Frame Geometriedaten, die man dann nacheinander anzeigen kann. Man hat also bei einer Animation mit 250 Frames zum Beispiel 250 Vertex Buffer. Allerdings verwendet jeder Frame die gleichen Texturkoordinaten. Und die 250 mal einzeln abzuspeichern wäre ja wirklich sinnlos. Dafür bieten einem Vertex Streams dann eine sehr elegante Lösung an. Man erstellt 250 Vertex Buffer mit Positionen und Normalen aber nur einen mit den entsprechenden Texturkoordinaten. Dann kommt der Vertex Buffer in Stream 0 und der Texturkoordinaten Buffer in Stream 1 und schon hat man seinem Videomemory viel stress erspart . _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|