JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=df4dde52ee6bc54757f28ad9321f1670Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Wozu mehrere Vertexströme?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gombolo
Mini JLI'ler



Anmeldedatum: 25.11.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 16.10.2007, 10:20    Titel: Wozu mehrere Vertexströme? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 16.10.2007, 12:09    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dr. Best
Senior JLI'ler


Alter: 34
Anmeldedatum: 17.06.2004
Beiträge: 269
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 16.10.2007, 14:52    Titel: Antworten mit Zitat

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 Very Happy .
_________________

Ich bin da, wer noch?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum