scenegraph transformation
-
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..
-
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
-
dali schrieb:
Also ich habe zb Klassen Node, Transform und Geometry:
class Transform { ... }; class Node: public Transform { Transform* childs[] }; class Geometry: public Tranform { .. };interresanter ansatz, dieses erklärt auch deine depth-first traversierung.
wie sehen den deine restlichen nodes, nur die vererbung, aus? den wofür brauch zb. ein shader node eine transformation? so schaffst du dir doch unnötige abhangigkeiten und vergeudest rechenzeit, denn du müsstest immer die transformation berücksichtigen ausser du machst noch ne abfrage die
überrpüft ob eine transformation stattgefunden hat.