hi. bin neu hier im forum und grüße erstmal alle. bin auf euch durch das dgl-wiki aufmerksam geworden.
wie der titel schon sagt, will ich den prozess der init. von opengl verstehen. überall gibts 1000 tutorials, die allerdings schlecht kommentiert und auch recht unterschiedlich sind.
ich bin kein mensch, der aus nem tut einfach was copy&pasted, ich will den prozess verstehen. hier habe ich z.b. ein beispiel:
welche schritte sind pflicht und welche sind als konfiguration zu sehen? wie sieht also eine minimalistische InitOpenGL() funktion aus? dann kann man ja bei bedarf schritt für schritt funktionalitäten hinzufügen.
danke schonmal für eure kompetenten antworten!
ps: sorry, wenn ich mich nicht klar ausdrücke, seit 20h auf den beinen.
Zuletzt geändert von sNIk am Sa Nov 01, 2008 21:44, insgesamt 1-mal geändert.
Vom Ende zum Anfang:
glHint(...) Hatte mal Bedeutung (im letztem jahrtausend) als OpenGL, bzw 3D noch in Sofware lief.
Der tiefentest ist default mäßig eingeschaltet, wenn mit dem Context einer angefordert wurde.
glClearDepth(....) Damit kommt man so langsam in den Bereich wo man nicht optimale Werte setzten könnte. Der Defaultwert ist auf jedenfall sinnvoll.
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ) Stellt quasi den default Zustand her.
glShadeModel( GL_SMOOTH ) Auch dies ist default. Flat shading dürfte eh nur in ausnamefällen sinvoll sein. EInen wirklichen Geschwindigkeitsunterschied gibt es heute eh nicht mehr.
Es ist halt so, das all diese dinge sich auf dinge beziehen, die heute eigendlich nicht mehr so wichtig sind.
Definitiv nicht. Im prinzip ist zur Zeit alles außer der Opengl 3.0 spezifikation veraltet. Bis OpenGL 3.0 jedoch sinvoll verwendet werden kann sollte man warten bis SDL, glut oder andere biblioteken eine entsprechende unterstützung mitbringen. (Man kann sich auch mit einem selbsterzeugtem Context helfen, beispiele finden sich im Forum auf opengl.org)
Besonders sollte man den Anhang E der Opengl 3.0 Spezifikation anschauen, da dieser die Liste aller veralteter funktionen enthällt. Auch wenn die eigene ziehhardware nicht OpenGL 3.0 tauglich ist, kann man dort erkennen welche teile von OpenGl 1.x und 2.x wahrscheinlich nicht in hardware implementiert sind, da sie schon seit Jahren veraltet sind und nur aus kompatibilität in Form einer langsamen Softwareemulation mitgeschleppt wurden. Dazu gehöhren z.B. Selektion, glBegin/glEnd, Texture borders, indizierte Farben. Weiterhin entfällt das komplette fixed function framework in zukunft (matrix operationen, material eigenschaften, licht usw)
Wenn man sich erst einmal daran gewöhnt hat beleuchtungs und material eigenschaften als shader zu schreiben, kann man einen großen Teil der alten Opengl dokumentation ignorieren, so das programieren deutlich einfacher wird. So kann man Eine reflektion einfach im shader selbst berechnen, stat komplizierte texturkoordinaten generierungen zu verwenden. Allerdings bedeutet, dies auch, das man sich eigene frameworks schaffen muss um diese alte funktionalität zu ersetzten.
ich überlege mir das buch "OpenGL SuperBible - 4th Edition" zu kaufen ... habe bisher nur gutes gelesen ... "OpenGL - Der einfache Einstieg in die Schnittstellenprogrammierung" war nämlich ein fehlkauf.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Zum Thema OpenGL 3.0 muss ich aber noch meinen Senf dazu geben. Im Prinzip hat oc2k1 vollkommen recht. ABER. Meiner Meinung nach kann man das nicht so pauschal sagen. Aus seiner Sicht trifft die Aussagen zu aber nicht jeder der OpenGL benutzt will das Gleiche machen. Es kommt daher stark darauf an was du mit OpenGL anstellen willst und für welche Zielgruppe du dein Programm schreibst.
Für OpenGL 3.0 zum Beispiel gibt es teilweise noch nicht mal vollständige Treiber (Hat das überhaupt schon einer geschafft?). Und selbst wenn es die Treiber dann geben wird benötigt man dafür auch ziemlich aktuelle Grafikkarten. Besonders wenn es um das Thema Shader geht. Und wenn du dann eher einen Pong Klon oder primär nur so 2D Sachen machen willst wären solche Anforderungen vermutlich etwas übertrieben. Das sollte man dabei bitte nicht außer Acht lassen.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
NV hat Beta Treiber für OpenGL3.0 raus gebracht.
SDL arbeitet seit jahren an einen Multiwindow und 64bit support, ich würde nicht darauf bauen, dass die in den nächsten Jahren noch ein OGL3 support bringen.
Ich hab sowieso das gefühl, das SDL ziemlich tot ist, zumindestens gibt es schon seit langer Zeit keine Lebeneszeichen mehr von sich.
OGL 3.0 Beta Treiber für die gf8800 und aufwärts besorgen, wenn sich wer dafür interessiert und sonnst würde ich einfach warten, bis beide großen ihre Treiber draussen haben.
Wir hatten diese Disskursion ja schon ziemlich lange von allen Seiten beredet und so wirklich ein für oder wieder hat sich für OGL3.0 als Einstieg nicht ergeben.
Ich denke, bleib noch bei OGL2.x, denn OGL2.x hat schon gut Literatur in aller Form angesammelt.
Die Rote und Blaue Bibel sind etwas veraltet, selbst für OGL2.1 Verhältnisse aber trotzdem sehr gut.
Bisher habe ich eigentlich noch garkein Buch, zum Thema OpenGL, gesehen, was ich empfehlen würde.
Schau dir die Tuts im Wiki an und dann flipcode,nehe, dass sollte eigentlich ausreichen.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Hallo sNik,
Willkommen hier im Forum. Das Buch, nach dem Du fragst, habe ich zwar nicht gelesen, aber in Amazon kann man sich das Inhaltsverzeichnis ansehen. Ob es brauchbar ist, kann ich jetzt nicht sagen, weil man dazu natürlich den Text kennen muss - aber vom Umfang und den Themen her sieht es nach einem gut strukturierten brauchbaren Ding aus. Allerdings kann man ähnliche Inhalte auch überall im Web finden, nur eben nicht so säuberlich gebunden.
Es ist empfehlenswert, mehr Gewicht auf die Kapitel "Shader" zu legen, wie oc2k vorher schon gesagt hat. Die OpenGL-Welt befindet sich derzeit in einem Umbruch, und das Buch beinhaltet natürlich viele Dinge, die nur mehr von historischem Interesse sind, weil die lange erwartete OpenGL version 3.0 zwar nominell im Spätsommer dieses Jahres rausgekommen ist. Das oben genannte Buch mit Editionsjahr 2007 kann das natürlich noch nicht berücksichtigen.
Nichtsdestotrotz ist es so, dass die meisten Leute immer noch mit vorhandenen Tutorials anfangen, weil man damit schneller was auf den Bildschirm zaubern kann (quick & dirty - ich bin auch so einer). Wenn man sich in OpenGL aber mit den nicht so neuen Methoden einmal "warm" gemacht hat, dann möchte man natürlich aber auch die neueren, schnelleren, besseren Methoden kennen lernen. Das ist dann eben ein zweistufiger Lernprozess.
Man kann das natürlich überspringen und gleich mit Shadern anfangen. Shader sind effektiver und haben mehr Möglichkeiten, setzen aber auch mehr Vorwissen voraus: Rendering Pipeline, 3D-Mathe fallen mir hier spontan ein; da ist mehr Durchhaltevermögen gefragt.
The fourth edition of OpenGL® SuperBible, the newest member of the Addison Wesley OpenGL Technical Library, is now available!
OpenGL SuperBible, Fourth Edition, begins by illuminating the core techniques of "classic" OpenGL graphics programming, from drawing in space to geometric transformations, from lighting to texture mapping. The authors cover newer OpenGL capabilities, including OpenGL 2.1’s powerful programmable pipeline, vertex and fragment shaders, and advanced buffers. They also present thorough, up-to-date introductions to OpenGL implementations on multiple platforms, including Windows, Mac OS X, GNU/Linux, UNIX, and embedded systems.
Coverage includes:
* An entirely new chapter on OpenGL ES programming for handhelds * Completely rewritten chapters on OpenGL for Mac OS X and GNU/Linux * Up-to-the-minute coverage of OpenGL on Windows Vista * New material on floating-point color buffers and off-screen rendering * In-depth introductions to 3D modeling and object composition * Expert techniques for utilizing OpenGL’s programmable shading language * Thorough coverage of curves, surfaces, interactive graphics, textures, shadows, and much more * A fully updated API reference, and an all-new section of full-color images
ich denke, hier kann ich recht viel lernen und das von grund auf. und bis die opengl 3 geschichte "reif" ist und ich mir ne gf8000+ leisten kann, sollte es ein guter einstieg sein. somit erledigt sich das mit dem sdl-problem wohl auch. ich hoffe, bis dahin ist sdl mit opengl 3 kompatibel. und was sollte ich an mathe mitbringen? reichen matrizen- und vektoren-berechnungen?
ich tendiere eher zum buch, als zu den tuts, weil ich lieber bücher lese. z.b. vorm schlaf oder auch mal unterwegs.
PS: ich bin in einigen foren unterwegs gewesen und schon jetzt kann man sagen, dass hier kompetente und freundliche user aktiv sind. bin froh, auf dieses gestoßen zu sein!
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
sNIk hat geschrieben:
PS: ich bin in einigen foren unterwegs gewesen und schon jetzt kann man sagen, dass hier kompetente und freundliche user aktiv sind. bin froh, auf dieses gestoßen zu sein!
Auch wir freuen uns, wenn interessierte und freundliche Einsteiger zu uns kommen. Vor allem wenn sie uns (insbesondere die, die nach kommen) Teil haben lassen an ihre Erkenntnissen.
So läuft dieses Forum - since 2003!
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.