SDL opengl und c++ problem
-
Natsu schrieb:
Hmm okay, aber dann hätte es doch eigentlich korrekt laufen müssen als ich anstatt der Schleife eine Delay funktion drin hatte...
Nein wie kommst du drauf, ohne Event Processing kann das nicht funktionieren. Ein Fenster ohne Nachrichtenschleife ist ein totes Fenster. Das ist in Windows eben so.
Tutorials kenn ich leider keine, ich hab noch nie im Leben mit SDL gearbeitet :p
GLUT ist uralt, korrekt. Aber es gibt z.B. noch GLFW oder Freeglut und wie sie alle heißen. Generell sind diese Libraries aber sowieso alle ziemlich eingeschränkt, aber für den Anfang reichts. Wenn du unter Windows richtiges OpenGL machen willst wirst du auch noch sowas wie GLEW oder GLee verwenden wollen. Außer du schreibst komplett alles selbst.
-
Hey dot^^ du bist scheinbar der einzige hier der bereit ist mir zu helfen;) danke.
Ja von den libs freeGlut und GLEW etc. hab ich auch einiges gelesen, allerdings hab ich gehört dass sdl und opengl wohl die beste combo wären (speziell in meinem fall, da ich eine 3D-Anwendung schreiben will - nein kein game^^ ne sculpting app also "einfach" ein prog mit dem ich einen vorhandenen Mesh bearbeiten und verformen kann...) Ich such schon den ganzen tag (und den tag davor auch schon aber zu nem anderen problem^^) nach gescheiten quellen... und jedesmal wenn ich was gefunden hab ist es entweder unvollständig, veraltet oder kostet ne ganze stange geld... Wenn du brauchbare tuts hast die ohne sdl sind aber den selben zweck erfüllen, dann solln die mir auch recht sein^^
Hmm Naja vll mal ein überblick was ich momentan in Angriff genommen habe:
Also wie schon gesagt solls ne sculpting app á La sculptris werden, jedoch mit quads statt dreiecken damit die damit geschaffenen meshs animierbar bleiben.
Die Schritte die ich aktuell in angriff nehmen will sind folgende:
1. Verschieb- und skalierbares Fenster, ohne menü und rand (eben NOFRAME... in SDL)
2. 2 Layer, einer davon (der untere) der "workspace" in dem der Mesh mithilfe von maus und tastatureingaben verformt werden soll, und der zweite layer (oben drüber links/rechtsbündig) für das anordnen und darstellen der icons.
3. Nen .obj-fileloaderJoa wenn das ganze mit Resourcen die dir/euch bekannt sind realisierbar ist außer purem c++ und opengl dann schreibts mir bitte, bin für jede hilfe dankbar (wie gesagt mittlerweile hänge ich schon 2 tage mit quellensuche rum ich will endlich arbeiten...xD)
-
Natsu schrieb:
Ja von den libs freeGlut und GLEW etc. hab ich auch einiges gelesen, allerdings hab ich gehört dass sdl und opengl wohl die beste combo wären (speziell in meinem fall, da ich eine 3D-Anwendung schreiben will - nein kein game^^ ne sculpting app also "einfach" ein prog mit dem ich einen vorhandenen Mesh bearbeiten und verformen kann...)
Dass OpenGL und SDL generell "die beste Combo" wären hör ich ehrlich gesagt zum ersten Mal und muss dem gleich widersprechen. Gerade für deine Sculpting App ist SDL wohl ziemlich sinnlos da du praktisch nichts von der Funktionalität der SDL verwenden wirst. Ich weiß nicht was genau du so vor hast, aber wenns sowas sein soll an was ich grad denk dann willst du lieber ein GUI Toolkit verwenden wie z.B. Qt denn du wirst deinem Tool wohl eine Benutzeroberfläche verpassen wollen.
Natsu schrieb:
Ich such schon den ganzen tag (und den tag davor auch schon aber zu nem anderen problem^^) nach gescheiten quellen... und jedesmal wenn ich was gefunden hab ist es entweder unvollständig, veraltet oder kostet ne ganze stange geld... Wenn du brauchbare tuts hast die ohne sdl sind aber den selben zweck erfüllen, dann solln die mir auch recht sein^^
Ja das ist leider so mit OpenGL, der Großteil der Information die man zu OpenGL so findet ist noch auf dem Stand des vorigen Jahrhunderts. Die Sache ist die: Sobald du OpenGL verwendest hat das mit der SDL nichtsmehr zu tun, die SDL verwendest du in dem Fall nur um ein Fenster zu erzeugen in das du mit OpenGL reinmalen kannst und das wars, der Rest passiert dann mit OpenGL. GLFW, freeglut, etc. sind Libraries die genau dafür gedacht sind, nämlich eben plattformunabhängig ein Fenster zu erzeugen in das man reinmalen kann. Die SDL ist dagegen eine komplette Bibliothek die für die Entwicklung von 2D Spielen und so gedacht ist. Sie bietet entsprechend von Grafik über Input, Audio bis hin zu Netzwerk alles Mögliche was du für deine Anwendung niemals brauchen wirst.
Natsu schrieb:
Joa wenn das ganze mit Resourcen die dir/euch bekannt sind realisierbar ist außer purem c++ und opengl dann schreibts mir bitte, bin für jede hilfe dankbar (wie gesagt mittlerweile hänge ich schon 2 tage mit quellensuche rum ich will endlich arbeiten...xD)
Erstmal ist das was du da vorhast momentan wohl ein paar Nummern zu groß für dich. Wenn du sowas machen willst solltest du zuerst OpenGL richtig beherrschen. Ich kenn leider nur ein kleines Tutorial das ganz ok ausschaut und "richtiges" OpenGL lehrt, findest du hier. Der verwendet zwar GLUT aber das tut wie gesagt nichts zur Sache da es dabei ja nur drum geht das Fenster zu erzeugen, der OpenGL Teil ist davon komplett unabhängig. Mach erstmal das Tutorial durch und schreib ein paar kleine OpenGL Anwendungen bevor du dich an so ein Tool wagst
Allerdings musst du dich ja nicht auf C++ versteifen, vor allem wenn du eine Anwendung mit Benutzeroberfläche machen willst ist C++ jetzt nicht unbedingt die Ideallösung. Mit C# ginge sowas z.B. viel einfacher...
-
http://arcsynthesis.org/gltut/
Hier ist auch noch nen aktuelles OpenGL Tutorial.
-
@dot: hey danke für die ganzen infos, tja wenns stimmt dass sdl im nachhinein für nix mehr zu gebrauchen ist, dann schätze ich muss ich mir den ärger damit nicht unbedingt geben... Auch wenn du mit einer sache ein wenig daneben liegst^^ auch sdl kann für die gestaltung einer gui verwendet werden und außerdem zur abfrage von tastatur und mauseingaben. Das Tut das du mir gegeben hast scheint brauchbar zu sein (bis auf den umstand dass ich immer noch glut ersetzen muss aber das wird schon irgendwie gehen^^), dass sdl einen haufen an funktionalität mitschleppt die ich letzten endes nicht mehr brauchen werde stimmt wohl leider auch
qt kenn ich jetzt nicht wirklich (zwar schonmal davon gehört und vll ein oder zwei artikel dazu gelesen aber das wars auch schon)aber ich hatte vom überfliegen den eindruck, dass es doch recht extensiv ist (also viel zu lernen wäre...).
Erstmal ist das was du da vorhast momentan wohl ein paar Nummern zu groß für dich. Wenn du sowas machen willst solltest du zuerst OpenGL richtig beherrschen.
^^ Stimmt schon, wenn man es aus der normalen perspektive betrachtet wär es wahrscheinlich dumm sich in so ein großes projekt reinzustürzen ohne fundierte Grundkenntnisse von opengl zu haben, aber so lerne ich halt am besten^^ Ich habe das projekt in module eingeteilt, so dass ich das Ganze schritt für schritt abarbeiten kann und auf dem Weg das nötige lerne --> kann einfach nix langfristig drinbehalten wenn ich es nur auswendig lerne, ich muss es tun;}
Allerdings musst du dich ja nicht auf C++ versteifen, vor allem wenn du eine Anwendung mit Benutzeroberfläche machen willst ist C++ jetzt nicht unbedingt die Ideallösung. Mit C# ginge sowas z.B. viel einfacher...
hmm eigentlich wollte ich jetzt nicht auf c# umsteigen zumal ich davon keine ahnung habe... Und auch die meisten Ressourcen beziehen sich auf c++, wenn ich da auf c# umsteige ist das als würde ich mich selbst einschränken...
Danke nochmal für die vielen Ratschläge und deine Aufmerksamkeit dot^^ weiß es zu schätzen. Sollte es nochmal zu komplikationen kommen (wird es zu 99,9%) werd ich mich einfach vertrauensvoll wieder an dieses forum wenden^^ (ist im übrigen genial, dass man sich hier nicht anmelden muss, meine emailfächer sind sowas von zugestopft mit registrierungsmails...)@scorcher24: Wow danke, ein tutorial von 2011^^ hast du das gestern schnell selber geschrieben?^^ Nein ehrlich, würd mich echt interressieren wie du das aufgetrieben hast (vor allem wenn man bedenkt wie lang ich mir den a....llerwertesten abgesucht hab
Also nochmal danke für eure hilfe, ich hoffe ich kann mich jetzt endlich dransetzen und was schaffen o.o
bye
-
Nein, ist nicht von mir..^^.
Ist aus dem offiziellen OpenGL Forum der Link. Dort hat es einer gemacht. Lohnt sich da mitzulesen :).
Hab mich da selber durchgekämpft und dann mein Projekt auf OGL3 umgesetzt. Ist also recht gut wenns sogar nen Idiot wie ich halbwegs kapiert :D.
-
Natsu schrieb:
Auch wenn du mit einer sache ein wenig daneben liegst^^ auch sdl kann für die gestaltung einer gui verwendet werden und außerdem zur abfrage von tastatur und mauseingaben.
Das ist mir durchaus bewusst, allerdings ist diese Funktionalität in der SDL eher für GUI in Spielen/Vollbildanwendungen gedacht und sicherlich recht eingeschränkt. Ein natives Windows GUI bekommst du damit z.B. nicht hin.
Natsu schrieb:
^^ Stimmt schon, wenn man es aus der normalen perspektive betrachtet wär es wahrscheinlich dumm sich in so ein großes projekt reinzustürzen ohne fundierte Grundkenntnisse von opengl zu haben, aber so lerne ich halt am besten^^
Glaub mir, besser lernst du wenn du erstmal kleine Demos schreibst in denen du dich auf einzelne Aspekte konzentrieren kannst. Render mal einen rotierenden Würfel dann weißt du schon viel mehr als jetzt. Im Moment hast du einfach nicht die Erfahrung dass du auch nur eine entfernte Vorstellung davon haben könntest wie du so ein Programm aufbauen solltest. D.h. wenn du dich jetzt einfach da reinstürzt läuft das nur darauf raus dass du dein Programm ständig komplett umschreiben wirst.
Natsu schrieb:
kann einfach nix langfristig drinbehalten wenn ich es nur auswendig lerne, ich muss es tun;}
eben
Natsu schrieb:
(ist im übrigen genial, dass man sich hier nicht anmelden muss, meine emailfächer sind sowas von zugestopft mit registrierungsmails...)
Es zahlt sich aber aus sich zu registrieren
-
Hi, die antwort kam aber schnell^^.
Glaub mir, besser lernst du wenn du erstmal kleine Demos schreibst in denen du dich auf einzelne Aspekte konzentrieren kannst.
Das widerspricht ja meinem vorhaben nicht^^ ich hatte schon vor stück für stück vorzugehen, also ein Fenster bzw. GUI erstellen geht nicht von jetzt auf gleich, also lerne ich zunächst die initialisierung der api und anschließend wie ich ein fenster öffne das ich nach meinen vorstellungen "designen" kann. Als nächstes hatte ich vor in einem solchen fenster ein paar einfache opjekte (Dreieck, Quad, pyramide, Würfel) darzustellen. der nächste schritt wären dann einfache transformationen/translationen des objektes (würfel) also skalieren, verschieben, rotieren. Und erst wenn ich das alles zum laufen gebracht habe, hatte ich vor eine GUI einzufügen, sodass bestimmte Interaktionen mit dem Objekt an Interface eingaben gekoppelt sind. Naja und danach wirds hässlich
da kommen dann die komplizierteren Mathematischen funktionen und der .obj-loader dran (also fileformate). Natürlich hatte ich nicht vor das ganze programm in einem stück hinzuschmieren... Wie gesagt ich geh da lieber modular vor sodass ich praktisch arbeiten kann während ich meinem Ziel näher komme^^
Im Moment hast du einfach nicht die Erfahrung dass du auch nur eine entfernte Vorstellung davon haben könntest wie du so ein Programm aufbauen solltest.
Naja eine "entfernte" Vorstellung habe ich zwar schon, nur leider eine noch sehr weit entfernte und eher rudimentäre also auf Ideen und ansätze beschränkt^^
Natsu schrieb:
(ist im übrigen genial, dass man sich hier nicht anmelden muss, meine emailfächer sind sowas von zugestopft mit registrierungsmails...)Es zahlt sich aber aus sich zu registrieren
Hmm, naja wenn du das sagst dann tu ich das doch mal ... (auf eine mail mehr wirds wohl nicht ankommen
-
@scorcher: Trotzdem danke für den tipp^^ ich hätte wohl einfach mal bei google nach "gltut" suchen sollen war gleich das erste...
Hab mich da selber durchgekämpft und dann mein Projekt auf OGL3 umgesetzt. Ist also recht gut wenns sogar nen Idiot wie ich halbwegs kapiert :D.
Also jemand der sich bis zum schluss durchgequält und es gepackt hat, kann kein idiot sein... nur meine meinung x.O
-
dot schrieb:
Ja das ist leider so mit OpenGL, der Großteil der Information die man zu OpenGL so findet ist noch auf dem Stand des vorigen Jahrhunderts. Die Sache ist die: Sobald du OpenGL verwendest hat das mit der SDL nichtsmehr zu tun, die SDL verwendest du in dem Fall nur um ein Fenster zu erzeugen in das du mit OpenGL reinmalen kannst und das wars, der Rest passiert dann mit OpenGL.
Das gilt allerdings nur für die Grafik.
Die anderen Sachen von der SDL. Threads, Inputsteuerung usw. kann man alles weiterbenutzen.Die SDL ist dagegen eine komplette Bibliothek die für die Entwicklung von 2D Spielen und so gedacht ist.
Nein!
Die Nutzung der 2d Grafikfunktionen der SDL sind optional. Man kann die SDL und OpenGL prima kombinieren und die Grafik nur OpenGL machen lassen.Allerdings musst du dich ja nicht auf C++ versteifen, vor allem wenn du eine Anwendung mit Benutzeroberfläche machen willst ist C++ jetzt nicht unbedingt die Ideallösung. Mit C# ginge sowas z.B. viel einfacher...
C# braucht .Net, wenn das Plattformunabhängig sein soll, ist das keine gute Wahl.
Und Mono ist in diesem Fall kritisch zu betrachten. Ich würde keine Anwendung entwickeln bei der ich von MS abhängig bin.