[OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL senden?

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von dot »

Eisflamme hat geschrieben:Ne unordered_map von Boost dürfte bei strings keine Performanceprobleme mehr haben, oder? Dann finde ich es nämlich ganz schön, weiterhin über strings zu gehen (auch wenn ich verstehe, dass der Hauptperformanceverlust an o.g. Stelle liegt ;)).
Eine unordered_map ist eine Hash Table und kein Suchbaum. Auch wenn der Zugriff asymptotisch gesehen theoretisch schneller ist sind es immer noch strings und du hast dort dann eben ständig den Overhead der Hashberechnung. Ich kann absolut nicht nachvollziehen warum du dich dermaßen auf strings versteifst. Es gibt viele Fälle wo solche Konstrukte sinnvoll sind aber hier sehe ich eben absolut keinen Vorteil der dir aus der Verwendung von strings erwachsen würde, im Gegenteil, wenn du mich fragst machst du damit alles nur unnötig kompliziert.
Eisflamme hat geschrieben:Hm... eigentlich könnte man die AnimationChannel doch einem Node komplett unterordnen, wir haben ja nicht 1:n Node:Animation.
Ich würde mir überlegen ob man nicht überhaupt den Model Part komplett vom Animations Part entkoppeln kann. Wenn du mich fragst dann hat ein Model ein Skelett. Das Skelett definiert die Hierarchie und Bind Pose. Eine Animation definiert wie sich die einzelnen Joints eines Skelettes bewegen ist aber selbst nicht Teil des Skeletts. Eine Animation operiert lediglich auf einem Skelett.
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von Eisflamme »

Aber die Animation animiert ja auch immer nur das eine Skelett, niemals ein anderes. Daher macht es für mich schon Sinn, wenn die Animation dem Model untergeordnet ist.

Das mit den strings ist schon korrekt, ich schmeiß die jetzt alle raus. In meinem Eifer habe ich alles umgebaut und jetzt klappt natürlich gar nix mehr, hachja, macht das Spaß. -_-
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von dot »

Naja ich würde sowieso noch unterscheiden zwischen einer Animation, nämlich einem Container von Keyframes für die Joints von einem Skelett und einer AnimationInstance die den momentanen Zustand einer laufenden Animation kapselt (aktuelle Keyframes, interpolierte Matritzen, etc.) . Die Daten der Laufanimation brauchst du ja prinzipiell nur einmal für alle Zwerge, gleich wie das Zwermodell oder das Zwergskelett, lediglich der momentane Zustand der Animation ist für jeden Zwerg unterschiedlich.
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von Eisflamme »

Das löse ich dadurch, dass ich noch eine so genannte ModelInstance habe. Vor jedem Rendern setzt diese beim Model die Animation halt auf eine bestimmte Zeit, führt das Rendern durch, und die nächste Instanz setzt das dann halt anders.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von dot »

Das geht natürlich auch. Nur wirds mit dem System wohl eher schwer mal mehr als nur eine Animation pro Model zu supporten oder überhaupt Animation Blending, vielleicht sogar kombiniert damit dass die Spiellogik oder Gamephysik an Joints rankommt weil du z.B. willst dass das Playermodel seinen Kopf dort hindreht wo die Kamera hinschaut und das alles während der Spieler seitwärts läuft und winkt, ... Wenn die Animation vom Model abgekoppelt ist dann ist dann ergibt sich das alles vollkommen natürlich da die Animation in so einem System einfach nur eine von vielen möglichen Quellen für Bewegung ist die beliebig mit anderen überlagert werden kann. Das Model braucht zum Rendern einfach nur den Zustand aller Joints. Wie dieser genau ermittelt wird ist imo nicht Aufgabe des Model, es sollte nur ein Interface dafür bieten.
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: [OpenGL] Blend/Binormal/Tangent-Attribute an OpenGL send

Beitrag von Eisflamme »

Danke! Sicherlich eine gute Anregung, vielleicht bau ich das später noch um. :) Erstmal spare ich mir das aber, schließlich muss ich irgendwann auch Mal weiterkommen.
Antworten