Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 05:02

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 20:40 
Offline
DGL Member
Benutzeravatar

Registriert: So Jul 27, 2003 00:18
Beiträge: 22
Wohnort: Wachenroth (bei Erlangen)
Hi,

Ist es sinnvoller, jeden Frame eines animierten Objektes in eine extra Displaylist zu kompilieren und dann eine Displaylist nach der anderen aufzurufen, oder das Objekt uncompiliert zu lassen und die Koordinaten der einzelnen Vertices während der Laufzeit zu ändern? :blink:

Hat von euch eigentlich schon mal jemand mit bones gearbeitet? Gibts da irgendwo ein Tut?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 20:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich würde für jeden Bone eine eigene DisplayList (o.ä) machen, und diese dann für jedes Frame mit einer Matrix verändern... also du speicherst du jedem Bone für jedes Frame eine Matrix, und multiplizierst die dann beim Rendern einfach dementsprechend :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 10:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn du auf Bones basierende Animationen implementieren willst, dann lass die Sache mit den Displaylisten am besten ganz sein, denn das zu kombinieren dürfte prinzipiell gar nicht funktionieren.
Bei skelettaler Animationen sind die Vertexe eines Meshes ja an Joints (= Bones) gebunden die dann das Skelett dieses Modelles binden.Und bei jedem Fortschreiten der Animationen müssen die Vertexpositionene ja anhand der neuen Position des Knochens zu dem sie gehören neu berechnet werden, und da die Vertexdaten von Displaylisten ja statisch sind, kann man diese dafür nicht verwenden.
Wenn du also mit skeletaler Animation arbeiten willst, dann empfehle ich dir das <span style='color:blue'>Milkshape3D-Format</span>, welches mit jener arbeitet, recht weit verbreitet und auch gut dokumentiert ist und die Nutzung von Vertexarrays, deren Daten sich ja dynamisch verändern lassen.

Hier gibst ein Tut das den programmiertechnischen Aspekt des MS3D-Formates abdeckt (C++) : <a href='http://rsn.gamedev.net/tutorials/ms3danim.asp' target='_blank'>http://rsn.gamedev.net/tutorials/ms3danim.asp</a>
Und hier gibts ein etwas allgemeineres Tut das auch auf das Basteln der Animation eingeht : <a href='http://home.planet.nl/~monstrous/tutskel.htm' target='_blank'>http://home.planet.nl/~monstrous/tutskel.htm</a>

Das mit den Matrizen die Aya erwähnt hat kann man deshalb auch nur bei Animationen anwenden die z.B. auf Keyframes (siehe 3DS-Format) basieren, bei skelettaler Animation geht das nicht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 13:36 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
SoS, ich bin mir ganz sicher, dass man bei skelettal animations mit matrizenmultiplikation weiterkommt, du must für jeden Knochen den du im Baum herabsteigst die Matrix einmal pushen und an den Angelpunkt gehen. Drehen wie gewünscht, nächster Knochen im Baum, pushen,... das funktioniert einwandfrei, sit glaub sogar im Redbook beschrieben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 15:11 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Bei der skelettalen Animation wird doch auch für jeden Knochen eine Matrix ausgerechnet. Und da Knochen alle irgendwie aneinander hängen müssen die Matrizen auch multipliziert werden. Nur das Problem ist, daß jeder Vertex mit einer oder mehreren unterschiedlichen Matrizen multipliziert wird. Man kann die Berechnung über ein Vertex Program ausführen, indem man zu jedem Vertex als Attribute die Nummer der Matrizen speichert und im Vertex Program selber dann den Vertex mit den Matrizen multipliziert.
Das einzige was man dann zur Animation ändern muß sind Matrizen, die als Vertex Program Parameter gespeichert sind. Dann könnte man das ganze auch in einer DisplayListe speichern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 23:44 
Offline
DGL Member
Benutzeravatar

Registriert: So Jul 27, 2003 00:18
Beiträge: 22
Wohnort: Wachenroth (bei Erlangen)
Ok, danke

Ich schau mal wie ich das mit den Matrizen hinkrieg und mit den Tutorials bin ich auch erst mal ne Weile beschäftigt :D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]