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

Aktuelle Zeit: Mo Jul 14, 2025 02:36

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Lektion2
BeitragVerfasst: Mi Okt 26, 2005 22:33 
Offline
DGL Member

Registriert: Mo Okt 24, 2005 22:39
Beiträge: 2
Hallo zusammen,
ich hab eure Website vorgestern gefunden und sie gefällt mir sehr gut. Vor allem die Tutorials. Ich habe vor, alle oder die meisten ;-) durchzugehen nachdem ich an der Uni Computergraphik 1 hinter mich gebracht habe und wir da fast nur Algorithmen (Scanline , Bresenham), Beleuchtung Matritzenrechnung und ähnliches gemacht haben. Ziemlich trocken.
Also hab ich mal mit den Tutorials angefangen. Im zweiten wird jedoch beschrieben, wie man den Beobachter/Kamera vom Mittelpunkt des erzeugten Raums bewegt, damit man nicht im erzeugten Polygon selbst steht und nichts sieht. Bei folgendem Beispielprogramm tritt jedoch das Gegenteil auf. Mit glTranslatef(-1.5, 0,-6); sieht man nichts. Wenn ich diese Zeile jedoch auskommentiere ist das rotierende Quadrat zu sehen. Mit glTranslatef(-0.5, 0, 0); sehe ich das Viereck nach links versetzt. Was mache ich da falsch?
Das Programm habe ich mit devcpp kompiliert.
Gruß Johannes

Code:
  1. // OpenGL header files
  2. #include <windows.h>
  3. #include <gl/gl.h>
  4. #include <GL/glut.h>
  5.  
  6.  
  7. // Global variables
  8. float g_spin = 0.0;
  9.  
  10. /** This is the GLUT display function. */
  11. void display()
  12. {
  13.     glClear(GL_COLOR_BUFFER_BIT);
  14.  
  15.     glMatrixMode(GL_MODELVIEW);
  16.     glLoadIdentity();
  17.     glTranslatef(-0.5, 0, 0);
  18.     glRotatef(g_spin += 0.01, 0.0f, 0.0f, 1.0f);
  19.  
  20.     glBegin(GL_QUADS);
  21.     glVertex3f(-0.25, -0.25, 0.0);
  22.     glVertex3f(0.25, -0.25, 0.0);
  23.     glVertex3f(0.25, 0.25, 0.0);
  24.     glVertex3f(-0.25, 0.25, 0.0);
  25.     glEnd();
  26.    
  27.     glutSwapBuffers();
  28.     glFlush();
  29. }
  30.  
  31. /** This function is the program entry point. */
  32. int main(int argc, char** argv)
  33. {
  34.     // Initialize the GLUT window and define callback functions
  35.     glutInit(&argc, argv);
  36.     glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
  37.     glutInitWindowSize(400, 400);
  38.     glutCreateWindow("quad");
  39.     glutDisplayFunc(display);
  40.     glutIdleFunc(display);
  41.        
  42.     // This starts everything related to GLUT...
  43.     glutMainLoop();
  44.     return 0;
  45. }


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 26, 2005 22:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
bäh glut, nutz doch SDL :)

Ein SDL Beispiel (welches auch auf Windows compilert werden kann) für diese Lektion 2 findest du in der Linux Version des DGL SDK:

http://files.delphigl.com/Download/dgls ... .2.tar.bz2

(und noch vieles mehr :) )

//Edit: Da fällt mir auf, das das nach C++ aussieht. Kannst dir trotzdem das entsprechende Paket runter laden und fast 1 zu 1 portieren.

MfG
Flo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 26, 2005 23:01 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich denke das liegt an deiner Projektionsmatrix-Einstellung.
Du solltest auch den Tiefenpuffer am Anfang jedes Durchlaufs löschen (glClear(GL_DEPTH_BUFFER_BIT)) (Was man noch alles Löschen kann steht im Wiki.

Welche Uni? (CG1 klingt für mich bisl nach TU Chemnitz... ;) )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 27, 2005 08:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Von mir erstmal ein Herzliches Willkommen. :-)

Habe das Thema mal verschoben und die CODE Tags hinzugefügt.

Flash hat was das angeht schon recht. Du solltest auf jeden Fall auch den Tiefenbuffer löschen.

Aber ich frage mich da gerade eines. Wo sagst du OpenGL eigentlich welche Darstellung due haben möchtest? Also ob 2D, 3D. In welchem Bereich deine Clippingplanes liegen sollen. Also das was sich in diesem Bereich des Quickstart Tutorials befindet. Oder macht die Glut das automatisch? Kann ich mir aber eigentlich nicht vorstellen. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 27, 2005 19:50 
Offline
DGL Member

Registriert: Mo Okt 24, 2005 22:39
Beiträge: 2
Danke erst mal für die schnellen Antworten.
Ich hab den Befehl zu Löschung des Tiefenbuffers mal aufgerufen, allerdings bewirkt der nichts sichtbares. Ich werd mir dann mal das Quikstart Tutorial ansehen.
Computergraphik 1 müsste es doch an jeder Uni geben, ich bin jedenfalls in Siegen, falls das einer kennt.
SDL glut, weiß ich noch gar nicht wirklich, was das für Dinger sind, die haben uns nur erzählt das wir glut brauchen damit wir die entsprechenden Funktionen nutzen können.
Wo das ganze "geclippt" wird ist wohl irgendwie standardtmäßig angegeben. Das Codebeispiel was ich oben angegeben habe ist zum größten Teil aus einer Übung übernommen. Ist wohl das minimalistischste lauffähige gl-Programm.
MFG
Johannes


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 27, 2005 20:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Kommt auf die sichtweise an. Also das kleinste mit user Code ist ganz klar ein (Pascal) programm welches unsere EasySDL Units nutzt. Das sind dann gerade mal 20 Zeilen und wenn man noch ein paar IFDEFs für Delphi/Freepascal Unterscheidung einfügt 25.

Da du aber C++ nutzt wird das ganze komplizierter. Tja...

Kannst ja mal deine Prof. fragen warum sie noch (das alte, nicht mehr supportete, auf Grafik beschränkte) glut benutzen und nicht die Simple Direct Media Layer.

MfG
Flo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 27, 2005 21:10 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@Flo: Er wird sagen: "Weils funktioniert. Wieso sollten wir was anders machen?"

Und er hat irgendwo auch recht. In den Übungen bei uns wollen die nur Zeigen wie OpenGL geht. Sie wollen niemanden zum OpenGL - Entwickler machen. Is mehr Grundlagen verklickern. Bei uns in Chemnitz müssne wir am ende eine Projektarbeit abgeben. Ich hab den Übungsleiter gefragt und der sagte, dass es ihm egal wäre, ob ich SDL nutze oder net. Ich werds wohl nehmen...

_________________
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  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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.

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