Hallo liebes GM-D Forum.
Ich hätte da wiedermal eine Frage bei der ich evtl Hilfe von experten bräuchte.
Es geht darum dass sspäter mal gerne eine Art 3D Editor schreiben würde.
Was für mich dabei eine hürde darstellt ist das auswählen von Objekten im 3Dimensionalen Bereich.
Man kennt das ja schon von verschiedensten Editoren: Man klickt mit der maus auf ein Bauteil und dieses wird ausgewählt.
Das Problem für mich ist nun, wie man sowas überhaupt umsetzen könnte (ohne stark auf die Performance zu drücken)
Ich kann mich noch gut an ein example von Moolt errinern wo dies abgehandelt wurde. Dabei wurden die Blöcke die man anklicken konnte in einer 2ten View ( die für dne Spieler unsichtbar ist) gedrawt. Dabei wurde jedem Block eine Farbe zugewiesen die einzigartig war ( sprich: die nur einmal in der speziellen view vorkam).
Anhand eines arrays das zuvor erstellt wurde (beinhaltete die Farbe und die zugehörige Objekt-ID) konnte man feststellen auf welches Objekt der spieler gerade zeigt.
Man nahm einfach den jeweiligen pixel vom bildschirm auf dem die Maus war und vergleichte mit der Farbe den inhalt des "Farb-Arrays". So konnte man auf das Objekt schließen.
Die Frage: Geht es auch anders? Ich kann mir gut vorstellen dass bei komplexeren Strukturen das ganze etwas lahm werden könnte (sprich: bei vielen Objekten).
u.a. da dass draw-event pro objekt 2 mal ausgeführt wird. 1 mal das "normale" modell, und das 2te mal die gefärbte Version.
Was für möglichkeiten gäbe es denn so etwas performant hinbekommen? Welche Ansätze gebe es denn?
Wie realisieren dass überhaupt andere Programme wie z.B: Blender wo man allein jeden Vertex anklicken kann? (Ich nehme mal an die nutzen irgendein Raycasting Verfahren ...)
Ich hätte da wiedermal eine Frage bei der ich evtl Hilfe von experten bräuchte.
Es geht darum dass sspäter mal gerne eine Art 3D Editor schreiben würde.
Was für mich dabei eine hürde darstellt ist das auswählen von Objekten im 3Dimensionalen Bereich.
Man kennt das ja schon von verschiedensten Editoren: Man klickt mit der maus auf ein Bauteil und dieses wird ausgewählt.
Das Problem für mich ist nun, wie man sowas überhaupt umsetzen könnte (ohne stark auf die Performance zu drücken)
Ich kann mich noch gut an ein example von Moolt errinern wo dies abgehandelt wurde. Dabei wurden die Blöcke die man anklicken konnte in einer 2ten View ( die für dne Spieler unsichtbar ist) gedrawt. Dabei wurde jedem Block eine Farbe zugewiesen die einzigartig war ( sprich: die nur einmal in der speziellen view vorkam).
Anhand eines arrays das zuvor erstellt wurde (beinhaltete die Farbe und die zugehörige Objekt-ID) konnte man feststellen auf welches Objekt der spieler gerade zeigt.
Man nahm einfach den jeweiligen pixel vom bildschirm auf dem die Maus war und vergleichte mit der Farbe den inhalt des "Farb-Arrays". So konnte man auf das Objekt schließen.
Die Frage: Geht es auch anders? Ich kann mir gut vorstellen dass bei komplexeren Strukturen das ganze etwas lahm werden könnte (sprich: bei vielen Objekten).
u.a. da dass draw-event pro objekt 2 mal ausgeführt wird. 1 mal das "normale" modell, und das 2te mal die gefärbte Version.
Was für möglichkeiten gäbe es denn so etwas performant hinbekommen? Welche Ansätze gebe es denn?
Wie realisieren dass überhaupt andere Programme wie z.B: Blender wo man allein jeden Vertex anklicken kann? (Ich nehme mal an die nutzen irgendein Raycasting Verfahren ...)