Fragen zu OpenSG
-
Hallo, habe ein paar Fragen zum OpenSG
wisst ihr gute Foren ect, in denen über die Scenegraph API
diskutiert wird?
Hat von euch jemand ne Ahnung davon
sind nur 3 kleine Fragen
wenn ich darf poste ich sie auch hier!Gruß Matthias
-
Hi,
Ich arbeite ein wenig mit OpenSG (nicht OpenSceneGraph).
Stelle deine Fragen einfach...
Foren gibts keine, aber die Doxygendokumentation sowie die Mailinglisten sind eine gute Quelle...
-
Hallo, es geht dabei um viel Geometrie z.b. Legosteine
möchte es irgnendwie hinbringen, dass er mir nicht bei
2000 Steinen mit den Fps in den Keller geht
lässt sich die Geometrie im Baum refferenzieren?
Die Geometrie setzt sich aus Quads und Triangles zusammen
gibt es Algorithmen die nur Triangles drauf machen?
Wie lässt sich das am Besten realisieren?
-
Aus wieviel Quads/ Dreiecken bestehen denn deine Legosteine? Sind die Geometrien alle identisch? Dann könnte man diese nur einmal instanziieren und die Referenz an verschiedenen Stellen im Szenegraph einfügen. Ist im Geometriekern die Benutzung von VBO / Displaylisten aktiviert?
Ein bisschen Quelltext macht die Sache auch ein wenig einfacher
-
Die Geometrie setzt sich aus Quads und Triangles zusammen
gibt es Algorithmen die nur Triangles drauf machen?Ein gegebenes (konvexes) Quad mit den Eckpunkten v0..v3 kannst Du auf genau zwei Arten in zwei Dreiecke A,B zerlegen:
1: A=v0,v1,v2 B=v0,v2,v3
2: A=v0,v1,v3 B=v1,v2,v3Quad Tri(1) Tri(2) 0----3 0----3 0----3 | | |\ | | /| | | | \ | | / | | | | \ | | / | | | | \| |/ | 1----2 1----2 1----2
Das wird aber keine Auswirkungen auf Deine Performance haben.
-
Aus wieviel Quads/ Dreiecken bestehen denn deine Legosteine?
ca 700 bei einem 2x4 er Stein
Sind die Geometrien alle identisch?
pro Stein schon, also wenn ich 2 gleiche Steine einfügen möchte.
Dann könnte man diese nur einmal instanziieren und die Referenz an verschiedenen Stellen im Szenegraph einfügen.
ja das wollte ich weis aber den Befehl nicht wie das geht
und finde leider keine so rechte Doku dazuIst im Geometriekern die Benutzung von VBO / Displaylisten aktiviert?
das würde ich auch gerne machen nur weis ich au ned wie das geht
habs mal mit ->clone() probiert... aber ob das die Referenz ist?Ein bisschen Quelltext macht die Sache auch ein wenig einfacher
kann ich dir geben bitte schreib mir doch mal eine pm
-
GeometryPtr lego = ...; NodePtr groupNode = makeCoredNode<Group>(); for(int i = 0; i < anzahlSteine; ++i) { TransformPtr trans = Transform::create(); Matrix m = .... beginEditCP(trans); trans->setMatrix(m); endEditCP(trans); NodePtr transNode = makeCoredNode<Transform>(trans); NodePtr geoNode = Node::create(); beginEditCP(geoNode); geoNode->setCore(lego); endEditCP(geoNode); beginEditCP(groupNode) groupNode->addChild(transNode); endEditCP(groupNode) beginEditCP(transNode); transNode->addChild(geoNode); endEditCP(transNode); }
Damit befindet sich nur eine Referenz der Geometrie in jedem Blatt des Teilbaumes. Mit den unterschiedlichen Transformationen kannst du dann die Position und Orientierung festlegen.