Laden...

Hat jemand Erfahrung mit GTK# und SharpDX/OpenTK-Integration?

Erstellt von -John vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.501 Views
-
-John Themenstarter:in
3 Beiträge seit 2018
vor 6 Jahren
Hat jemand Erfahrung mit GTK# und SharpDX/OpenTK-Integration?

Hi 😃

für mein aktuelles Vorhaben möchte ich gerne eine cross-Plattform Application erstellen die jeweils ein 3D-Cube anzeigt der über eine UI Eingabe verschoben werden kann.

Dafür habe ich mich jeweils durch Haufen von Artikel gewälzt und war auf der Suche nach den passenden Bibliotheken für dieses Vorhaben und bin Letzt endlich auf folgender Kombination hängen geblieben:

UI: GTK#
3D-Cube Win: SharpDX
3D-Cube Mac: OpenTk

  • Doch leider kommt es mir so vor als würde OpenTK nicht mehr entwickelt werden?
  • Hat jemand bereits Erfahrungen mit der Kombination gesammelt?

Mfg.
-John

PS: Leider bin ich Neuling was diese Richtung angeht, da ich vorher eher in Umgebungen Programmiert habe wo ich auf UI nicht angewiesen war bzw. crossplattform

5.658 Beiträge seit 2006
vor 6 Jahren

Hi -John,

für mein aktuelles Vorhaben möchte ich gerne eine cross-Plattform Application erstellen die jeweils ein 3D-Cube anzeigt der über eine UI Eingabe verschoben werden kann.

Je nach Anforderungen wäre evtl. auch Unity oder sogar WebGL eine Option. Aber da müßtest du mal mehr über dein Vorhaben erzählen.

3D-Cube Win: OpenTK
3D-Cube Mac: SharpDX

Eher andersherum, oder?

Hier gibt es auch noch ein paar Hinweise, auch wenn die z.T. schon etwas veraltet sind: [FAQ] Wie finde ich den Einstieg in die 3D-Programmierung mit C#?

Weeks of programming can save you hours of planning

-
-John Themenstarter:in
3 Beiträge seit 2018
vor 6 Jahren

Hi MrSparkle,

mein nächster Schritt nach der Erstellung des Cube Vorhabens wäre daraus eine 3D-Modelling Application zu schreiben.

Ich hatte mir dein Artikel auch durchgelesen und empfand in als sehr hilfreich für meine rechere, doch leider steht bei mir noch immer ein kleines Fragezeichnen im Raume was das ganze Topic angeht.

Für mich sehen sie alle so aus als wären sie damals aktiv gewesen und jetzt sind das aussterbende packages?

PS: Vielen Dank für den Hinweis 😄

5.658 Beiträge seit 2006
vor 6 Jahren

eine 3D-Modelling Application zu schreiben

Warum willst du einen 3D-Modeller schreiben? Für welche Zwecke wird der gebraucht? Wer ist die Zielgruppe? Warum verwendest du nicht fertige Anwendungen bzw. Komponenten dafür, und versuchst stattdessen, das Rad komplett neu zu erfinden?

3D-Anwendungen sind mit das komplizierteste, was man so entwicklen kann. Und da ist die 3D-Anzeige noch nicht einmal der schwierigste Teil. Fang doch lieber erstmal mit dem Modeling an, das kannst du ohne Probleme plattformunabhängig implementieren, und dann merkst du ganz schnell, wie aufwendig das ist.

PS: Bitte beachte [Hinweis] Wie poste ich richtig?, Punkt 6.1 Bilder als Dateianhang hochladen (und keine Filehoster verwenden)! Das Bild hab ich daher entfernt.

Weeks of programming can save you hours of planning

-
-John Themenstarter:in
3 Beiträge seit 2018
vor 6 Jahren

Warum willst du einen 3D-Modeller schreiben?

Ich komme ehemalig aus dem Art/(Tech)-Bereich (Tools/Extension) und möchte mehr in den 3D-Application Bereich eintauchen.

Für welche Zwecke wird der gebraucht?

Zum einen als Lernprojekt um mehr in die Materie einzutauchen und zum anderen für mein aktuelles Problem:

Ich bin vor ein gut 1 1/2 Jahren von Windows-Rechner auf den Mac umgestiegen und schnell musst ich feststellen das viele meiner Applicationen die ich für das Erstellen von 3D-Grafiken verwendet hatte nicht mehr für OSX supportet werden. Mir ist wohl bewusst das es auch sehr viele nützliche und gute Applicationen bereits schon existieren die jeweils auch auf die Plattform OSX ausgelegt sind, aber keins davon hat mich wirklich so gefesselt. (3DsMax war meine bevorzugte Wahl auf den Windows-Rechner)

Wer ist die Zielgruppe?

Ein Schwerpunkt der Zielgruppe liegt bei Mac User die von Window zu Mac gewechselt sind und ehemalige 3DsMax user waren.

Warum verwendest du nicht fertige Anwendungen bzw. Komponenten dafür, und versuchst stattdessen, das Rad komplett neu zu erfinden?

Gute Frage! Ich bin im Moment in der Concept-phase wo ich verschiedene Komponents suche teste und abwäge ob sie für das Projekt sinnvoll sind. Ich bin leider noch nicht auf eine passende Komponente gestoßen die mir schon bereits viel von meiner Arbeit abnimmt. Für mich ist das auch ein neuer Bereich den ich betrete und leider besitze ich nicht das Knowledge über alle Librarys die so existieren, auf meiner Rechere bin ich immer auf diese oben genannten Librarys gestoßen und die haben für mich Sinn ergeben.

Ich bin immer offen für neue Librarys bzw. Erfahrungen die jemand mit gewissen gemacht hat 😃

3D-Anwendungen sind mit das komplizierteste, was man so entwickeln kann.

Ja es ist ein hartes Topic das ist mir wohl bewusst, ich kann es auch nur runterbrechen in Portionen einteilen und verarbeiten. Trotzdem hindert es mich nicht daran meine Hände davon zu lassen. 😄

Und da ist die 3D-Anzeige noch nicht einmal der schwierigste Teil. Fang doch lieber erstmal mit dem Modeling an, das kannst du ohne Probleme plattformunabhängig implementieren, und dann merkst du ganz schnell, wie aufwendig das ist.

Das ist durchaus ein guter Punkt und macht Sinn. Ich komme nochmal auf vorhin zurück falls jemand eine gute Library kennt um fürs erste nur 3D-Mesh-Daten anzeigen zu lassen reicht mir das auch. Dan kann ich bereits das andern System, die Letzt endlich die ganze Application bauen und später noch zusätzlich den Viewport andocken und mit den entsprechenden Events bzw. Input die drauf reagieren bzw. verdrahten.

Mfg.
-John

PS: Vielen Dank für die Info. Ich möchte nochmal hier leise erwähnen das mein Project nur ein reines 3D Modeller Programm ist nicht anderes. Ich weiß es macht nicht gleich dadurch leichter, aber ich wollte es nochmal erwähnt haben nicht das es sich hier so anhört als würde ich versuchen komplett jetzt eine HighEnd 3D Application anfertigen (ganz nach dem KISS-Prinzip) 😄

16.832 Beiträge seit 2008
vor 6 Jahren

Stell Dir mal die Frage, wieso es so viele Tools nur für ein jeweiliges OS gibt bzw. sich die Toolbasis für das jeweilige OS unterscheidet.
Das Grundproblem ist, dass grafisch aufwändige Anwendungen alles andere "als mal kurz" portabel für alle OS umsetzbar sind.

Aktuell ist es nicht mal(leider) ein triviales Ziel eine GUI-Anwendung zu entwickeln, die auf .NET basiert und auf Linux, MacOS und Windows läuft.
Das Tooling ist hier vor allem das Problem.

Problem 1: Als Basis kannst Du hier aktuell nur Mono verwenden (.NET Framework gibts nur auf Windows, .NET Core hat keinen UI-Layer)
Problem 2: Die Pflege von Mono hat durchaus noch potential (die Mono Entwickler sind zu Microsoft gewechselt); Mono ist nicht unbedingt soo aktuell und Feature-reich wie das .NET Framework
Problem 3: Es liegt durch die Übernahme nahe (und ehrlich gesagt ist es auch durchaus wünschenswert), dass Mono irgendwann durch .NET Core ersetzt wird; Du baust also schon jetzt eine aufwändige Basis, die vermutlich einen bereits definierten Ende-Horizont hat.
Auf der anderen Seite ist der Kopf hinter Mono durchaus ein Verfechter von Endlos-Support (er will auch WebForms zurück bringen!).

Als Lernprojekt ist das sicherlich in Ordnung.
Aber steck Dir realistische Ziele.

Mein Gefühl ist jedoch: mit Web-Technologien wie WebGL wirst Du vermutlich schneller an ein Ziel kommen, das auf wirklich allen Systemen funktioniert und auch eine längere Lebensaussicht hat.
WebGL ist leider noch kein Standard aber Mozilla steckt dahinter.

WebGL ist mittlerweile durch die WebAssembly auch mit C# entwickelbar (frühes Stadium).
Ansonsten kann man hier auch super mit TypeScript statt direkt mit JavaScript arbeiten.
Alternativ in die HTML5 und Canvas-Welt, die auch bereits extrem weit mit 3D Elementen ist.

5.658 Beiträge seit 2006
vor 6 Jahren

Ich geb Abt Recht, besonders, was er zum Thema "Lernprojekt" und WebGL geschrieben hat. Trotzdem:

Warum willst du einen 3D-Modeller schreiben?

Ich komme ehemalig aus dem Art/(Tech)-Bereich (Tools/Extension) und möchte mehr in den 3D-Application Bereich eintauchen.

Dann würde ich an deiner Stelle aber lieber die Zeit damit verbringen, mich in Blender einzuarbeiten (gibts auch für den Mac) und dort die Tools zu implementieren, die es noch nicht gibt. Blender ist schnell, gut getestet und kostenlos. Und mit Python ist Blender sehr einfach und schnell um eigene Funktionalität und UI erweiterbar.

Weeks of programming can save you hours of planning