2016-12-18 3 views
-1

Ich lade 3D-Modelle aus verschiedenen Formaten, möglicherweise jeweils mit einem eigenen Koordinatensystem.Ändern des Koordinatensystems von Knoten, ohne die Änderungen zu übernehmen

Transformieren sie so, dass sie alle im selben Koordinatensystem sind, ist einfach.

Das Problem ist, wenn ich versuche, ein Modell an ein anderes anzuhängen, wenn beide das gleiche Format haben. Da sie sich bereits im selben Koordinatensystem befanden, wird die Transformation, die sie in das gemeinsame Koordinatensystem ändert, zweimal auf das untergeordnete Koordinatensystem angewendet.

Ich könnte spezifischen Code für jedes Format, und jedes Mal, wenn ich etwas an etwas anderes anhängen möchten, überprüfen Sie Formate, und ughhhh.

Meine aktuelle Knotenstruktur ist sehr generisch, und ich frage mich, ob es eine generische Lösung für dieses Problem gibt.

Antwort

0

Sobald die Modelle in Ihrem Programm sind, sollten sie nicht mehr in "ihrem eigenen Koordinatensystem" sein. Wählen Sie eine Konvention und bleiben Sie dabei.

Wenn Sie Modelle laden, die eine andere Konvention haben, ist das in Ordnung. Aber Sie transformieren ihre Vertices nach dem Laden von ihnen. Sie müssen also nicht mit Koordinatensystemtransformationen in Ihrem Szenegraphen experimentieren.

+0

Die Modelle, die ich lade, haben unterschiedliche Konventionen. Es ist nicht das Problem, die Scheitelpunkte selbst während der Ladezeit zu ändern. Es ist viel mühsamer, alle Animationsdaten zu ändern, die überall verteilt sind. Ein anderes Format verwendet auch gepackte Vertices, also interagiere ich nicht mit ihnen außerhalb der Shader. – user2503048

+0

@ user2503048: Sind ... Sie * wirklich * sagen, dass Sie das Problem beheben können, aber nicht wollen? –

+0

Ich frage, ob es eine elegantere und allgemeinere Art gibt, es zu beheben. – user2503048

Verwandte Themen