Welche Möglichkeiten kennt ihr zur Umsetzung von Crossplatform 3D Anwendungen

  • Allgemein

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von mausekeks.

    Welche Möglichkeiten kennt ihr zur Umsetzung von Crossplatform 3D Anwendungen

    Neu

    Hallo,

    ich bin aktuell mit dem Gedanken am Spielen eine Produktentwicklung zu machen. Um genau zu sein soll es sich dabei um eine Software handeln die industrielle Roboter ansteuern kann.

    Ich bin allerdings im Moment gar nicht so sicher welche Möglichkeiten mir sich da bieten wenn ich folgende Anforderungen habe:

    - Am Besten .NET Core
    - UI Framework, wo ich auch eigene Controls erstellen kann, weil ich Visuelles Scripting einbauen möchte
    - Ganz wichtig Cross-Platform, daher fällt WPF schonmal weg.
    - Die Applikation soll wie gesagt eine UI haben, aber auch einen 3D Viewport um visuell darzustellen wie sich der Roboter bewegt. Daher eine (nicht zu komplexe, aber auch nicht zu sehr limitierte 3D render engine)
    - Von mir aus kann die Anwendung auch im Browser laufen, falls es da iwie Möglichkeiten gibt die genannten Anforderungen umzusetzen.

    Hat jemand Erfahrung in dem Bereich und kann mir ein paar Tipps geben welche Frameworks da für mich in Frage kämen?

    Ich weiß es gibt Asp.Net,Blazor und Co. und ich weiß ungefähr was das alles ist, aber bin mir nicht sicher ob meine Anforderungen damit umsetzbar sind.

    Danke im Voraus

    PS: Wenn noch weitere Fragen aufkommen bzgl. eventuellen Anforderungen, gerne nachfragen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „seh“ ()

    Neu

    Hi @seh,

    für den Anfang solltest du einmal den Titel des Threads bzw. deine Fragestellung etwas umstellen.

    "Welche Möglichkeiten kennt ihr zur Umsetzung von Crossplatform 3D Anwendungen" oder so ähnlich.

    Nun zu deiner Frage:

    - .NET Core hast du ja schonmal selbst festgelegt
    - Eigene Controls kannst du unter .NET auch selbst zeichnen mit GDI+ oder z. B. mit DirectX (sharpgl) oder OpenGL(sharpgl)
    - Für Crossplatform UI´s schau dir mal AvaloniaUI an
    - zu 3D Viewport siehe 2. Punkt (keyword: SceneGraph)

    Möglichkeiten um das zu realisieren was du vor hast gibt es viele, ich denke (persönliche meinung) das worauf es ankommt ist:

    - Welche Tools nutzt du bereits und sind dir vertraut
    - Warum .NET Core bzw Crossplatform (was ist industriestandard)
    - Warum Webbrowser (steuert jemand die Roboter aus dem Web?)

    Ich denke du solltest dir noch einmal genau überlegen was deine Anforderungen sind, dann kannst dir Gedanken machen wie das ganze umzusetzen ist.
    z.B.:
    - ist Crossplatform wirklich nötig -> welches OS ist Industriestandard
    - Wie sieht die Kommunikation zu dem Roboter aus -> library oder selbst implementieren
    - Eine renderengine zu finden die nicht "zu kompliziert" ist ist sehr subjektiv.
    - Gibt es ein Release-Termin von einem Kunden, bzw. hat dieser Vorgaben zur verwendeten Technik
    - Und die frage ob der Aufwand sich relativ zum Nutzen lohnt (wie viel fertige Software gibt es die deinen Ansprüchen genügt)

    Lg

    Mausekeks

    \\EDIT: robodk.com/de/
    Brain is Loading: 35%

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mausekeks“ ()

    Neu

    Hallo @mausekeks

    Also zunächst einmal ist das nur eine Projektidee. Dahinter sitzt in erster Linie erst mal kein Kunde sondern nur eine persönliche Idee.

    .NET Core bietet ja grundsätzlich schon mal Cross Platform an. Allerdings nur, solange man auf eine UI verzichtet die auch Cross Platform funktioniert.
    Da käme dann AvaloniaUI ins Spiel. Tatsächlich hatte ich mich über AvaloniaUI gestern auch schon informiert. Hier ist das Problem der 3D Viewport. Dort kann man zwar auch eigene Controls entwickeln, ein 3D Viewport ist aber in der aktuellen branch nicht möglich. Es gibt einen `glcontrol` branch, der ein OpenGL Render Target implementiert und nh Teekanne abbildet. Leider war nach eigener Kompilierung dieser Branch im Viewport nichts zu sehen. Ich würde auch ungerne auf einem unfertigen, nicht-releasden Branch mein Projekt aufbauen.

    GDI+, klar kenne ich, geht aber nur unter Windows. DirectX ist auch Windows. OpenGL klar, aber dann welche UI?

    Cross Platform ist mir einfach wichtig, weil es schon ähnliche Software gibt (die mein Vorhaben beschreibt) und die sind auch Cross Platform fähig. Zudem würde ich als Kunde meiner eigenen Software auch gerne in der Lage sein, das Programm über Linux laufen zu lassen. Für Windows braucht man dann immer wieder eine Lizenz, bla bla bla, obwohl das alles gar nicht unbedingt nötig wäre weil fast alle Schnittstellen Programme wie dann die Vision Software die im Hintergrund läuft auch auf Linux läuft.

    Webbrowser habe ich nur erwähnt, weil das eben eine mögliche Anlaufstelle wäre wie Cross Platform mit UI und 3D Viewport wahrscheinlich noch relativ easy umzusetzen. Mir ist zwar als WebApp jetzt auch noch kein konkreter Weg bekannt (welche Libraries brauche ich (Blazor?, welche 3D Library für JS, geht das alles überhaupt miteinander?))
    Meine Frage lautete im Bereich Webbrowser, wenn jemand mehr Erfahrung mit dem ganzen Webgedöns was Microsoft da rausgebracht hat, hat, welche Bibliotheken kann ich miteinander kombinieren etc. um mein Vorhaben umzusetzen. D.h. es muss nicht unbedingt eine native Desktop Applikation sein, sondern das ganze Programm kann von mir aus auch eine Webanwendung werden die dann eben auch sehr umfangreich ausgebaut wird.

    Spricht denn was gegen Blazor + eine willkürliche JS 3D engine ?

    Blazor bietet mir die Möglichkeit eben mit C# als Backend zu arbeiten (glaube ich zumindest, korrigiert mich da bitte!) und dann hatte ich gestern noch babylonjs.com/ gefunden welche dann 3D Funktionalität im Browser bietet. Die Frage ist nur kann das miteinander funktionieren, oder gibt es Alternativen? Vielleicht hat jemand schon mal etwas ähnliches gebraucht oder kennt sich in dem Webentwicklungsgedöns bei den Möglichkeiten einfach besser aus.

    Neu

    Ich könnte falsch liegen aber wäre ein anderer Ansatz nicht zu Windows IOT auf z.b. einem Raspberry PI zu greifen?

    Für IOT gibt es das HelixToolkit auch für UWP und somit für Windows IOT.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Neu

    jetzt verstehe ich auch besser was du machen möchtest und was genau deine Gedanken dabei waren.

    Die idee von @Nofear23m ist auch nicht schlecht

    Villeicht wäre auch das was für dich: Electron.NET
    Wie praktikabel das ganze ist mit zwei Runtimes (.NET Core & Node) kann ich nicht beurteilen.


    Lg,
    Mausekeks
    Brain is Loading: 35%