Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 18:22

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Qt und OpenGL
BeitragVerfasst: Mi Nov 11, 2015 12:00 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich mag qml, trotz seiner macken.
Für eine indigogo Kampagne im januar brauchte ich schon beauty shots von der software.
Oc2k1 arbeitet an der software mit qt widgets, da er ja professioneller qt entwickler ist und ich hab versucht mit qml die shots zu machen.
Also zum prototypen ist es spitz, man kann funktionale ui basteln ohne c++ code zu brauchen, da ui bezogene logik in qml per javascript und default behaviour gelöst wird und die daten kann man auch in qml in entsprechenden Listmodel ablegen. Die einzigen c++ zeilen die ich hatte war der Stylesheet und die Farbpalette. Für die gleiche arbeit brauch ich mit wpf und co um mengen mehr zeit.
Das Problem ist dann echte denn die reflection, die die c++ container binden soll steckt in den kinderschuhen, einfache qlist mit string kein problem aber für mehr ist man schnell dabei für jedes model ein provider zu schreiben und hier hat qml seine schwäche. Wpf z.b. Nutzt die reflection und generiert sämtlichen code selber und bei qwidget tu ich programmiertechnisch die daten manipulieren.
Was soviel zeit braucht wie die model provider zu schreiben aber dafür ist der kram dann mvp konform.
Ich hab z.b. Den vmbuilder für opengl in wenigen stunden auf den stand vom wpf und xamarin alternative gehabt, wo ich tage gesessen hab.
Zur kommerziellen Lizenz kann ich nur sagen, dass ich davon nix bemerkt hab, es gibt Buisness komponenten aber die 5-6 stück sind so nutzlos. Das andere problem sind widgets, die gibt es quasi nicht, in der regel baut man die sich selbst aber das dauert nur minuten, wenn man nicht gerade bestimmte features braucht. Wir brauchen z.b. Qdockwidget und das gibt es im qml konzept nicht und hat auch noch keiner hin bekommen, an der Stelle merkt man dann, dass da Firmen intern was nicht richtig läuft.

Zurück zum thema opengl in qt ist generell ein krampf und nutz am besten ein kompatiblen extension loader oder lade sie selber, qt ist mit ihrem hinter her und verbugt, wie glew :/

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Qt und OpenGL
BeitragVerfasst: Mi Nov 11, 2015 16:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab mir mal den Code von beecksche genauer angeguckt und da sind einige Schwachstellen.

Als erstes benutzt du die OpenGL Befehle direkt, was aber nicht darfst, die müssen vom Context aufgerufen werden.
Dazu musst du dein OpenGL Widget zusätzlich von QOpenGLFunctions ableiten.
Sonnst musst du immer den aktuellen Context abfragen und mit dem den Call machen, also folgendes.
Code:
  1. QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions();
  2. f->glClearColor(...

Aktuell rufst du die normalen OpenGL Befehle auf und kannst nicht mal sicher sein, dass der erstellte Kontext überhaupt auf dem thread gebunden ist und damit ins leere läuft.

2. QT kümmert sich zwar drum den Viewport an zu passen, wenn das fenster resized wird aber tut nicht deine Projektions Matrix korrigieren.
Du solltest also in betracht ziehen noch im resize event die matrizen an zu passen.
Da es Test code ist, würde ich mal die ortho matrix weg lassen, ledeglich die projektion auf identity lassen und dein mesh im x -1 bis 1 und y -1 bis 1 bereich zu skalieren. Wenn z 0 ist, dann hast du automatisch Ortho modus aber es wird die aspect ratio 1:1 verwendet.
Zum testen ist das besser, weil man keine Fehler in den Matrizen beachten muss und auch nicht mit dem Mesh.

Ein Triangle mit -1,-1,0, 1,-1,0, 0,1,0 wird z.B. von unten links, nach unten rechts nach mitte oben gerendert.
Das ist auch der einfachste Test, wenn man von OpenGL 1-2 auf 3-5 wechselt, wo man ja sich selber um die Matrizen kümmern muss.
Post processing Passes macht man z.B. so, weil man sich die ganzen Matrix operationen sparen kann(im vertex shader wird die position 1zu1 durch geschleift) und der inhalt der Texturen schon die richtige Aspect Ratio hat.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Qt und OpenGL
BeitragVerfasst: Do Nov 12, 2015 08:55 
Offline
DGL Member

Registriert: Di Dez 16, 2014 10:18
Beiträge: 32
Programmiersprache: C++
danke für die Hinweise, werde sie in Zukunft beachten !!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 28 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.058s | 17 Queries | GZIP : On ]