Laden...

3d Modelle in einem WPF-Projekt

Erstellt von flar2000 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.911 Views
F
flar2000 Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren
3d Modelle in einem WPF-Projekt

Hallo liebe Forumsmitglieder,
heute mal eine Frage die euch vielleicht nicht so oft unterkommt und zu der ich leider auch ( nach 2 Tagen Recherche) nciht unbedingt viele Ergebnisse gefunden habe was mich sehr verwundert hat.

Ich habe ein WPF-Projekt in dem ich ein 3D-Objekt benötige. Dieses soll dort aber nicht einfach nur zum Betrachten sein, sondern soll sich auch bewegen können. Was es genau ist, würde hier wahrscheinlich die maximale Zeichenanzahl sprengen, jedoch als Beispiel (ich hoffe ich verstehe es dann an Hand von diesem) nehme ich einfach mal einen Roboterarm.

Ich habe bereits versucht ein solches Objekt mit dem Helixtoolkit zu erstellen. Kannste knicken. Geht gar nicht!!! Nach stundenlangem programmieren Winkelfunktionen daher leiten und so weiter und anch einfügen von knapp 80 unterschiedlichen Formen hatte ich denn ersten Teil fertig. Und der sah dann nicht schön aus und vollführte auch nicht immer das was ich genau wollte.

Also gut ich hab mich immer schon gerne mit 3D-Modelling beschäftigt bin jetzt aber nicht der Experte. Nun habe ich mir gedacht, dass ich dieses Ding einfach mal in 3ds max modelliere und dann wie auch immer in WPF einfüge und dort bewege.
War also mein erster Gedanke: Ich prompt ins Internet und los mit der Suche... Ergebnis: eher bescheiden. Habe zwar herausgefunden, dass es geht wie genau keine Ahnung... XNA!?! Aha...
Na gut dann fand ich einen Bericht zu einem ähnlichen Thema jedoch mit Blender und einer eigenen Soft-Engine... Puh

Dann am nächsten Tag ein Geistesblitz was wenn ich das Objekt in Unity einbinde, von dort ins WPF einbinde... könnt doch gehen... gefunden eher wenig dazu. 😦

Nun also meine Frage:
Gibt es eine Möglichkeit ohne eigene SOft-Engine dieses Objekt ein zu fügen und dann zzu bewegen (mittels Tasten oder wie auch immer, die unterschiedlichen Gelenke müssen sich eben bewegen), oder muss ich es in Unity programmieren und dann einbinden, bzw. ist das überhaupt dann möglich eine große Menga an WErten zwischen diesem Unity-Part und der WPF- Datei zu transportieren?

Sorry für den langen Text,

LG;
flar2000

5.657 Beiträge seit 2006
vor 5 Jahren

Hi flar2000,

hier gibt es einen Überblick über die verschiedenen Möglichkeiten, die du hast, um 3D-Objekte anzuzeigen: [FAQ] Wie finde ich den Einstieg in die 3D-Programmierung mit C#?

Das betrifft aber nur die Anzeige. Die Objekte mußt du natürlich selbst erstellen. Einfachere Objekte kannst du sicherlich mit den WPF-Datentypen erstellen. Aber komplexe Objekte mußt du halt erst einmal in einer 3D-Modelling-Software modellieren. Dafür kannst du 3ds Max oder Blender verwenden, und auch Unity hat einige Modelling-Tools. Da du aber nicht schreibst, um welche Art von Objekten es sich handelt, kann ich hier auch keine speziellen Tips dazu geben.

Weeks of programming can save you hours of planning

F
flar2000 Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren

Es ist ein Bagger mit einer Baumzange inklusive Cutter also eigentlich ein aufwendiges Modell zum Modellieren sollte jedoch nicht das Problem sein.
Das größere Problem ist das ganze imn VS dann in Bewegung zu setzen.

5.657 Beiträge seit 2006
vor 5 Jahren

3D-Animationen kannst du auch unter WPF erstellen. Hier ein Beispiel mit dem Helix-Toolkit: Rubic Demo. Wenn es komplizierter ist, z.B. bei einem Bagger mit mehreren Gelenken, kannst du Bones-Animationen verwenden. Die kannst du im 3D-Programm erstellen, und dann mit dem Modell speichern. Das sind im Grunde nur Matrix-Transformationen, die auf bestimmte Teile des Modells angewendet werden, und miteinander kombiniert werden können. Hier gibt es dazu ein Code-Beispiel vom Helix-Toolkit: BoneSkinDemo.

Weeks of programming can save you hours of planning

F
flar2000 Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren

Das klingt ja schon mal sehr gut ich werde das mal durchgehen. Wenn was nicht klar ist werd ich wohl noch mal stören müssen.