Laden...

[gelöst] Geeignetes Verfahren, um 3D Körper anzuzeigen und zu manipulieren

Erstellt von Tubifex vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.589 Views
T
Tubifex Themenstarter:in
12 Beiträge seit 2015
vor 8 Jahren
[gelöst] Geeignetes Verfahren, um 3D Körper anzuzeigen und zu manipulieren

Ich hoffe, dies ist das richtige Unterforum?
Betreff: wpf, viewport, helix, openTK

Liebe myCSharp-Gemeinde!

Seit einigen Tagen durchstöbere ich diverese openTK, helix und viewport-Tutorials, weil ich mich bisher hier nicht traute als Neuling ein Topic zu eröffnen. Trotzdem bräuchte ich trotz Stöbern den Rat von jemandem, der hier schon den "Überblick" hat.

Ich bin auf der Suche nach einer Möglichkeit, 3D-Geometrien nicht nur darzustellen, sondern für den Benutzer manipulierbar zu machen.
Das heißt:*Darstellung in 3D mittels Vertices und Triangles. *Die dargestellte Geometrie in Form per "Brush" durch den Benutzer zu manipulieren (bestehende Vertices verschieben oder neue Punkte erstellen [dass ich das Triangle-Netz mittels z.B. Delaunay an der Stelle neu aufbauen muss, ist mir klar]) *Das Material der Geometrie per "Brush" durch den Benutzer auftragen zu lassen.

Ich habe bereits in openTK rund in die viewports von wpf hineingeschnuppert. Helix blieb mir noch verwehrt, da ich bisher das Plugin nicht geschafft habe, zu starten.
Meine Frage wäre - bevor ich mich zeitintensiv in eins nach dem anderen hineinarbeite und dann sehe, dass Restriktionen mir Dinge verwehren:

  • reicht für die beschriebene Anwendung das viewport von wpf aus?

  • gibt es Ihrer Meinung nach Geeigneteres, im Rahmen von wpf, um das Vorhaben zu realisieren?

Ich wünsche noch einen schönen Sonntag und vielen Dank an dieser Stelle für das Durchlesen!

edit:
Gute Erfahrung habe ich mit heelix (HelixToolkit) gemacht. Das Darstellen und hinzufügen von 3D-Objekten ist nach Lesen einiger Threads in stackoverflow möglich. Leider ist die offizielle Dokumentation sehr dürftig, man muss sich halt durch Beispiele lesen, eine Auflistung von möglichen Befehlen/Methode/Klassen habe ich bisher noch nicht gefunden.

16.835 Beiträge seit 2008
vor 8 Jahren

Aus indirekter Erfahrung (ich war bei einer Firma, die CADCAM-Software hergestellt hat, aber nicht im CADCAM-Team) reicht die Performance von WPF nicht für moderne, (hoch-)komplexe CADCAM-Software aus bzw. gibt es Möglichkeiten, die Performanter sind und dabei weniger Ressourcen benötigen.
Aber um fair zu bleiben: dafür war/ist WPF auch nicht gedacht.

Die Frage ist also wie Komplex das ganze bei Dir werden soll. Was ausreicht und was nicht; wir kennen Deine Requirements hier nicht.
Ansonsten hilft Dir evtl schon [FAQ] Wie finde ich den Einstieg in die 3D-Programmierung mit C#?

5.658 Beiträge seit 2006
vor 8 Jahren

Hi Tubifex,

der Helix-Toolkit für WPF hat eine Unterstützung für DirectX, damit ist die Performance im Prinzip nur durch deine Hardware limitiert. Außerdem bietet Helix DataBinding und Unterstützung für Interaktionen mit den Objekten im Viewport. Es werden auch ein paar Beispiele mitgeliefert, bei denen 3D-Objekte mit der Maus manipuliert werden können (z.B. verschieben und drehen).

Christian

Weeks of programming can save you hours of planning

37 Beiträge seit 2014
vor 8 Jahren

Hi Tubifex,

wenn ich mir deinen Text so ansehe, hast du dich schon etwas mit 3D beschäftigt.
Von den Standard-Funktionen von WPF kann ich dir wie Abt und MrSparkle abraten, da stößt du relativ schnell an Grenzen. Helix ist definitiv ein gutes Projekt, mit dem du einstigen kannst. Dort sind auch einige Algorithmen für Triangulation usw. drin, könnte mir vorstellen, dass es da auch schon Standards für Verformungen o. Ä. gibt. Ich persönlich habe mit Helix aber bis jetzt weniger gemacht.

Wenn du voll auf DirectX gehen willst (aufgrund Performance etc.), kann ich dir auch mein OpenSource-Projekt Seeing# vorschlagen (schau einfach auf meine HP). Allerdings sind genau die Features, die du suchst, dort aktuell nicht umgesetzt.

Viele Grüße