Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Moin.
Ich stell mir die ganze Zeit die Frage, ob ich wirklich gezwungen bin mittels irgendeinem Framework auf die OpenGL-Funktionalitätet zuzugreifen? Oder ist eine direkte Interaktion möglich? Oder anders gefragt, wie machen das die Frameworks? Irgendeine "gemeinsame Konstante" müssen all die verschiedenen Frameworks ja haben.
Meine Frage rührt daher, dass ich mit C# in Kombination mit bestimmten Frameworks ja nie an de aktuelle OpenGL-Version komme. TAO steckt z.B. bei 2.1 fest, wenn ich das richtig sehe.
Wenn du beim erstellen des OpenGL Context keine Version angibst (wie es eben die meisten Frameworks machen) wird die Default-Einstellung benutzt...und die ist eben 2.1 bzw. was noch älteres wenn 2.1 nicht verfügbar ist. Natürlich muss das Framework zusätzlich auch die aktuellen Header benutzen, sonst kommst du ja an ggf. neue Funktionen nicht dran.
Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Also ich habe mir gestern noch ein Tutorial von Flame-Development angeschaut in dem glaube ich genau das getan wird, was mir dein Link verrät. Spich den Context erstellen und den Handle für's Window usw. Natürlich alles in CPP.
Die Frage ist natürlich, kann ich das selbe auch in C# machen? (Sorry für diese Anfänger-Fragerei) Sollte das nicht der Fall sein, dann bin ich scheinbar dazu gezwungen mich in CPP einzuarbeiten!
Ich habe den Morgen damit verbracht mir die Framworks genauer anzusehen und musste feststellen, dass keines davon eine Lösung auf Dauer ist. Tao ist gut, aber bei weitem nicht komplett implementiert. OpenTK ist verdammt gut aber wird nicht weiterentwickelt. SharpGL ist bis 4.2 implementiert, jedoch nicht wirklich Reif und wird auch nur noch in Slow-Mo von einem Entwickler "vorangetrieben" soweit ich das erkennen konnte. An sich ist das schade, aber es ist ja nun mal wie es ist
Mich in CPP einzuarbeiten wäre jedoch nicht meine favorisierte Lösung
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Naja, die normale Version kostet nix und die nutzten auch kein Framework für OpenGL, sondern wrappen es selber. Unity3D ist sehr praktisch, wenn man rapid development machen will aber für langfristige Projekte ist es noch nicht ganz ausgereift und man hat kein Zugriff auf die Kritischen Komponenten. Was ich in der Vergangenheit geflucht hab, als ich versucht hab einige Projekte schneller zu machen und an dem zu hoch angesetzten wrapping scheiter. Natürlich verbessert die Firma kontinuierlich das Produkt weiter und die waren auch schon bei uns in der Firma um Kritische Punkte, aus unserer Sicht, zu erfahren aber ein UI, welches jeden Frame den letzten VBO löscht, das UI komplett neu erzeugt, neue VBO generiert und dort das Mesh reinlegt kann nicht schnell sein und dann kommt sowas wie "kauft doch eine externe middleware". Naja ich schweife ab ^^
Ich hab mal ein bisschen gegoogelt und kann leider auch kein aktuelles C# Binding finden. Man muss hier ja zwischen wrapper und Binding unterscheiden. Der OpenGL Wrapper kapselt OpenGL in höherer Logik, wie z.B. ein VBO, FBO, Shader Klasse und ein Binding ist eine einfache API anbindung auf eine Klasse. Ich hab gehofft, dass irgendwer ein kleines Script geschrieben hat, welches OpenGL Spec Files zu c# binding Code generiert. So wie es z.B. GLEW und ich, mit GLMachiene, für C/C++ machen.
Vieleicht ist Managed C++ eine alternative, da hast du das .Net Framework und kannst C/C++ Programmieren. Man muss da ledeglich aufpassen dass man Pointer* und ManagedPointer^ nicht durcheinander bringt.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Ja, das mache ich auch. Im Objektkatalog ist folgender eintrag zu finden:
Zitat:
public static class Gl Member von Tao.OpenGl
Zusammenfassung: OpenGL binding for .NET, implementing OpenGL 2.1, plus extensions.
Was jetzt genau dadurch ausgedrückt wird kann ich nicht sagen, vllt steckt ja irgendwo in den bindings noch was drin!? Sollte das wirklich ausschließlich 2.1 beinhalten bin ich damit nämlich nicht zufrieden. Der Eintrag ist zu finden unter OpenTK.Compatibility.Tao.OpenGL.GL
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.