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

Aktuelle Zeit: Fr Jul 18, 2025 12:24

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Nov 01, 2008 20:54 
Offline
DGL Member

Registriert: Do Okt 30, 2008 00:59
Beiträge: 30
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:

Code:
  1.  
  2. int initGL( GLvoid )
  3. {
  4.     /* Enable smooth shading */
  5.     glShadeModel( GL_SMOOTH );
  6.  
  7.     /* Set the background black */
  8.     glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
  9.  
  10.     /* Depth buffer setup */
  11.     glClearDepth( 1.0f );
  12.  
  13.     /* Enables Depth Testing */
  14.     glEnable( GL_DEPTH_TEST );
  15.  
  16.     /* The Type Of Depth Test To Do */
  17.     glDepthFunc( GL_LEQUAL );
  18.  
  19.     /* Really Nice Perspective Calculations */
  20.     glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
  21.  
  22.     return( TRUE );
  23. }
  24.  


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.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 01, 2008 21:29 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Ich glaube alle diese schritte sind unnötig...

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.

_________________
Lumina plattform unabhängige GLSL IDE


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 01, 2008 21:44 
Offline
DGL Member

Registriert: Do Okt 30, 2008 00:59
Beiträge: 30
verstehe. und danke! :) btw. diesen code habe ich aus einem sdl-port eines nehe-tuts.

kann mir wer sinnvolle literatur empfehlen? hab hier schon was gefunden:

1. http://www.glprogramming.com/red/
2. http://www.glprogramming.com/blue/

ist das noch up-to-date?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 02, 2008 00:20 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
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.

_________________
Lumina plattform unabhängige GLSL IDE


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 02, 2008 13:06 
Offline
DGL Member

Registriert: Do Okt 30, 2008 00:59
Beiträge: 30
wow. danke für deinen kompetenten beitrag! :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 03:43 
Offline
DGL Member

Registriert: Do Okt 30, 2008 00:59
Beiträge: 30
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.

hat das jemand gelesen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 09:50 
Offline
DGL Member
Benutzeravatar

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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 10:13 
Offline
DGL Member
Benutzeravatar

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

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 10:17 
Offline
DGL Member
Benutzeravatar

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. :wink:

Viele Grüße
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 11:02 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
TAK2004 hat geschrieben:
Ich hab sowieso das gefühl, das SDL ziemlich tot ist, zumindestens gibt es schon seit langer Zeit keine Lebeneszeichen mehr von sich.


Das liegt vermutlich daran:
Bill Kendrick hat geschrieben:
> My family has another baby on the way, so there are no promises.
Damnit Sam, you KNOW babies are bad for OSS projects!

Ist zwar schon etwas her, aber erklärt wohl weshalb so wenig Fortschritt gibt.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 19:10 
Offline
DGL Member

Registriert: Do Okt 30, 2008 00:59
Beiträge: 30
zunächst einmal danke für die rege aktivität. ;)

hier ist ne info zu diesem buch von opengl.org:

Zitat:
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! :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 03, 2008 22:58 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

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