scenegraph transformation



  • Cpp_Junky schrieb:

    Übrigens kann man sich auch leicht selber so einen Matrix Stack basteln der dann unbegrenzt ist. Könnte allerdings Geschwindigkeit kosten wenn man dauernd die Matrix wegsichert und zurückschreibt.

    so etwas dachte ich mir auch schon, aber wie du schon sagst ist dieses vielleicht nicht das optimale.



  • aber meine nodes kennen das parent nicht.

    Speicher halt nen Pointer auf den Parent? Naja depth-first durch den Baum traversieren und dann die Matrix anpassen ist doch kein Problem. Sharing ist halt dann ein kleines Problem aber sonst...



  • dali schrieb:

    Speicher halt nen Pointer auf den Parent?

    sollte kein problem sein.

    dali schrieb:

    Naja depth-first durch den Baum traversieren und dann die Matrix anpassen ist doch kein Problem

    gute idee 👍 aber dann müsste das leaf ja ein transform node sein oder sehe ich etwas falsch



  • Jeap das Leaf wäre in deinem Fall ein Node.
    Schöner wäre es natürlich wenn du eine 2te Klasse machst in der du Pointer auf Parent und die Transformationsmatrizen speicherst von der du dann Node und Geometry etc ableitest weil ein Node als Leaf ist nicht gerade schön aber eigentlich egal.



  • mmmh, wenn ich dich richtig verstanden habe verkompliziert das meine ursprünglichen design gedanken. da ich eigentlich den graphen öfters mittels verschiedenen visitors durchlaufen wollte und somit verschiedene traversierungs methoden entwickeln müsste.



  • dali schrieb:

    Jeap das Leaf wäre in deinem Fall ein Node.

    Ist es doch immer.

    Irgendwie glaub ich nicht, das so ein paar Matrixmultiplikationen länger dauern, als die Szene aufzupinseln.

    Bye, TGGC



  • TGGC schrieb:

    dali schrieb:

    Jeap das Leaf wäre in deinem Fall ein Node.

    Ist es doch immer.

    Ne ist es nicht. 😎 😉



  • Natürlich ist es das. Siehe Begriffsdefinitionen Graphentherorie.

    Bye, TGGC



  • Naja normalerweise reden wir bei nem Szenengraph ja über nen abstrakten Graph also dass die Blätter/die Geometrie dann keine Kinder mehr haben ansonsten hätte man ja viel mehr Aufwand/Zeitverlust die Transformationen zu verwalten...



  • dali schrieb:

    Naja normalerweise reden wir bei nem Szenengraph ja über nen abstrakten Graph also dass die Blätter/die Geometrie dann keine Kinder mehr haben ansonsten hätte man ja viel mehr Aufwand/Zeitverlust die Transformationen zu verwalten...

    Du erzählst Unsinn. Ein Blatt ist ein Knoten in der Graphentheorie.

    Bye, TGGC



  • Aber ein Scenegraph ist kein normaler Graph. Warum soll eine Geometry auch ein Kind haben? Warum soll ein Knoten 2 oder mehr Väter haben?



  • dali schrieb:

    Aber ein Scenegraph ist kein normaler Graph.

    Natürlich ist ein Scenegraph ein Graph. Etwas ist entweder ein Graph, oder es ist kein Graph. Ein "Mittelding" (anormaler Graph?!) gibt es nicht. Dieser Graph hat nur bestimmte Eigenschaften, auch Baum genannt.

    Bye, TGGC



  • Ein Baum wäre zum Beispiel eine Eigenschaft eines Graphen? Dann würde aber auch bei jedem Baum ein Blatt ein Knoten sein deiner Logik nach oder?



  • Der einzig wahre Graph... ähhh Graf ist der hier

    http://hometown.aol.de/grafzahl38/images/graf zahl.jpg

    😉



  • dali schrieb:

    Ein Baum wäre zum Beispiel eine Eigenschaft eines Graphen?

    Unsinn, Graphen, die gewissen Eigenschaften genügen, nennt man Bäume.

    dali schrieb:

    Dann würde aber auch bei jedem Baum ein Blatt ein Knoten sein deiner Logik nach oder?

    Ja, darum geht es doch: Ein Blatt ist ein Knoten. Immer.

    Bye, TGGC



  • Also ich habe zb Klassen Node, Transform und Geometry:

    class Transform {
    ...
    };
    class Node: public Transform {
    Transform* childs[]
    };
    class Geometry: public Tranform {
    ..
    };
    

    dann sind die Blätter von der Klasse Geometry also nicht Node also kein Knoten. Also ich weiß jetzt nicht genau was du unter Knoten meinst aber wenn du unter Knoten die Gruppierungsklasse meinst dann ists falsch..


  • Mod

    lasst euch von TGGC nicht verrückt machen, ihr benutzt schon die typischen termini für sowas. gibt viele engines und coder die mit euch gleicher meinung wären. es geht ja nicht darum eine wissenschaftliche theorie anzuwenden, sondern namen zu haben unter denen sich die, die sich damit beschäftigen, auch was vorstellen können. und wenn ihr von z.b. leaf sprecht, egal was irgendwelche weltfremden theoretiker behaupten, jeder der nen bsp-tree mal implementiert hat (nach guten vorbildern), weiß was ihr meint. jeder n00b in dieser richtung dürfte natürlich nicht wissen, was in diesem fall der unterschied zwischen node und leaf ist 😉

    rapso->greets();



  • rapso schrieb:

    gibt viele engines und coder die mit euch gleicher meinung wären. es geht ja nicht darum eine wissenschaftliche theorie anzuwenden, sondern namen zu haben unter denen sich die, die sich damit beschäftigen, auch was vorstellen können.

    Und darum definiert ja die Graphentheorie was Bäume, Blätter, Wälder usw. sind. Und diese Theorie gibt es schon viel länger als Computer sind wurde z.b. durch Euler mitbegründet. Seitdem haben sich viele bedeutende Wissenschaftler in diesem Gebiet betätigt und diese Begriffe benutzt. Wenn ihr das nun einfach über den Haufen werft, weil ihr meint ihr seit ja soviel schlauer und habt das alles voll drauf und könnt mal eben alles umbenennen, dann ist das einfach nur ignorant.

    Bye, TGGC



  • Da hat sogar ein ZFX'ler mal recht

    6SidedDice schrieb:

    Everything must be open, but the eyes, ears and minds are closed.

    Bye, TGGC



  • ich muss jetzt auch noch meinen senf dazu geben. 😃
    imho ist ein scenegraph ist ein azyklischer, gerichteter und gewurzelter graph, deren elemente(blätter) knoten sind. und leaf ist der letzte knoten, sprich grösste baumtiefe, aber auch ein knoten.
    wobei das leaf bei mir immer die geometry war.
    http://de.wikipedia.org/wiki/Typen_von_Graphen_in_der_Graphentheorie


Anmelden zum Antworten