OpenGL
-
Vielen Dank schonmal für deine Hilfe.
Allerdings scheint CMake (was für Version 2.0 wohl benötigt wird) mich nicht zu mögen.
-
Gibt es zu der neuen Version denn gar keine Tutorials oder so? Denn da scheinen sich ja doch ein paar Dinge geändert zu haben. Besonders nett: das Beispielprogramm für 2.0 läuft nicht, da "GetEvent" kein Member von RenderWindow ist..
-
-
Hmja, würde es, aber irgendwie ist das komisch..
Seit ich die neuen Header-Files (2.0) benutze, scheint GetEvent nicht mehr zu funktionieren..
sf::RenderWindow has no member "GetEvent".
Mit sf::Window passiert das Gleiche.
Bin langsam etwas am verzweifeln mit der neuen Version, was mache ich falsch?Edit:
Aha.. wurde vor drei Tagen umbenannt(in "PollEvent")
https://github.com/LaurentGomila/SFML/tree/master/include
-
Und weiter hat SFML 2.0 keine OpenGL Header mehr, um Systemunabhängig zu bleiben muss man sich das wohl also selber basteln..
Allerdings werden die ja doch eh nur eingebunden.. also es ist doch völlig egal welche SFML Version ich jetzt nehme, es werden so oder so einfach nur die mitgelieferten OpenGL Dateien eingebunden. Visual Studio scheint also erstmal nur die alte Version mitzuliefern? Oder wie stellt man das jetzt um? Bin gerade etwas
-
Visual Studio liefert von Haus aus nur OpenGL 1.1 oder 1.5 oder sowas.
Benutz einfach GLew. Der lädt dir die Function-Calls aus den DLL deiner Videokarten-Treiber.
Musst nur 1x nach dem erstellen des Context glewInit() aufrufen, siehe mein Code.
Danach kannst alle OpenGL Calls ganz normal verwenden.
-
Gott, ok danke.
Vielleicht solltest du mal einen "Ich will OpenGL lernen aber das verwirrt mich alles" FAQ/Magazin Beitrag schreiben, in dem Du dann alle nötigen Konfigurationen bzw. empfehlenswerte Libs auflistest und kurz beschreibst wies los geht. Würde wahrscheinlich Vielen helfen
-
cooky451 schrieb:
Gibt es zu der neuen Version denn gar keine Tutorials
Es gibt eine Dokumentation und den Task-Tracker. Tutorials gibts nur zu CMake. Die anderen sind erst sinnvoll, wenn SFML 2.0 fertig ist.
cooky451 schrieb:
Hmja, würde es, aber irgendwie ist das komisch..
Seit ich die neuen Header-Files (2.0) benutze, scheint GetEvent nicht mehr zu funktionieren..Hihi, dafür bin ich verantwortlich. Heisst jetzt
PollEvent()
cooky451 schrieb:
Und weiter hat SFML 2.0 keine OpenGL Header mehr
#include <SFML/OpenGL.hpp>
-
Arbeitest du an SFML mit?
Wenn ja, dann bau mal ein dass man nen Core Profile aktivieren kann.
-
Nein, ich habe den SFML-Entwickler nur darauf hingewiesen, dass "PollEvent" passender als "GetEvent" ist
-
Nexus schrieb:
Nein, ich habe den SFML-Entwickler nur darauf hingewiesen, dass "PollEvent" passender als "GetEvent" ist
.. hatte es zwar schon gefunden, aber sie hätten das doch bitte auch in die Doku einbauen sollen!!!!
Der Tipp mit SFML/OpenGL.hpp war gut, gar nicht drauf geachtet.
Ich bin aber immer noch auf der Suche nach einem modernen OpenGL Tutorial, dass möglichst auf glut verzichtet. Mir würde ja schon eine Art übersichtliche Doku reichen mit Beispielcode zu:
- Kamerakontrolle (bzw. ViewPoint)
- Vertex Funktionen
- Texturen
- Models
- Shader
- etc.Oder ist das einfach quasi Standard glut zu nutzen? Ich möchte sonst eigentlich immer möglichst das Rad neu erfinden und erst später auf Fremdlibs zurückgreifen.
-
Hab dir doch bereits den Link gepostet:
http://arcsynthesis.org/gltut/
Das ist das beste Tutorial zu OpenGL 3 das man finden kann. Zumindest das umfangreichste. Da ist auch alles drin.
Ansonsten schau dir den Code in meinem SVN an. Vllt nicht der beste, aber er funktioniert.
Kamera ist leider keine dabei.BTW:
http://www.c-plusplus.net/forum/285147
"Deine" FAQ
-
Super, Danke!
In dem Eintrag fehlt hier ein Komma:Es gibt bisher sehr wenige Anlaufstellen dafür leider.
Und DX10 wurde seit der GeForce 8 Serie unterstützt
Zu dem Tutorial:
Es nutzt irgendwie auch glut..
zB. die Funktion glutSwapBuffers(); wird die durch SFML window.Display(); ersetzt? Ich finde das alles irgendwie immer noch etwas unübersichtlich, vielleicht fehlt mir da einfach die Erfahrung. Es gibt auch keine Möglichkeit sich mal den ganzen SourceCode zu ziehen, was soll das glUseProgram(theProgram); zB.?
-
glUseProgram aktiviert einen Shader. Der wird dann genutzt. Deaktiviert werden alle Shader dann mit glUseProgram(0).
Und ja, glutSwapBuffers ist äquivivalent zu sf::RenderWindow::Display(). Beide rufen SwapBuffers()(Windows) auf.Schau dir mal meinen SVN an.
Ich hab den Ruf einfachen Code zu schreiben und das mach ich auch teils mit Absicht, teils mangels Wissens an komplexeren Templates :P.http://code.google.com/p/nightlight2d/source/browse/trunk/NightLightDLL/NLShaderLoader.cpp#122
Hier wird der Shader geladen. Ohne Shader kannst du nichts darstellen in OpenGL3, da die Pipeline bekanntermaßen programmierbar ist.
Aber du solltest das am Anfang erstmal ignorieren, das wird später durchaus noch genauer erklärt.
http://arcsynthesis.org/gltut/Basics/Tut01 Making Shaders.htmledit:
Hier sind auch noch nen paar Samples:
http://nopper.tv/opengl.html