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

Aktuelle Zeit: Fr Jul 18, 2025 00:47

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Licht rotiert mit
BeitragVerfasst: Do Mär 09, 2006 21:10 
Offline
DGL Member

Registriert: Do Mär 09, 2006 20:57
Beiträge: 1
Hi,
hätte mal 'ne Frage zum Licht:
Also, ich habe folgendes Programm programmiert (Attachment), nun solte das Licht eigentlich immer von vorne auf die Schrift strahlen, jedoch scheint es mitzurotieren, denn wenn die Schrift sich um 180° gedreht hat steht sie im Schatten!
Warum?

Hier mein Quelltext:
Code:
  1. //Initialisierung von OpenGL...
  2.  
  3. procedure Render;
  4. const L_POSITION: array[0..3] of GLFloat = (0, 2, 5, 0);
  5.       L_AMBIENT : array[0..3] of GLFloat = (0, 0, 0, 0);
  6.       L_SPECULAR: array[0..3] of GLFloat = (1, 1, 1, 1);
  7.  
  8.       M_SHINESS : GLFloat = 50;
  9.       M_SPECULAR: array[0..3] of GLFloat = (1, 1, 1, 1);
  10. begin
  11.   glLightfv(GL_LIGHT0, GL_AMBIENT , @L_AMBIENT [0]);
  12.   glLightfv(GL_LIGHT0, GL_POSITION, @L_POSITION[0]);
  13.   glLightfv(GL_LIGHT0, GL_SPECULAR, @L_SPECULAR[0]);
  14.  
  15.   glMaterialfv(GL_FRONT, GL_SHININESS, @M_SHINESS);
  16.   glMaterialfv(GL_FRONT, GL_SPECULAR , @M_SPECULAR[0]);
  17.  
  18.   glEnable(GL_LIGHT0);
  19.   glEnable(GL_LIGHTING);
  20.   glEnable(GL_COLOR_MATERIAL);
  21.   glEnable(GL_NORMALIZE);
  22.  
  23.   glRotatef(rot, 1, 1, 0);  //rot ist eine Variable, die eben die Rotation in Grad angibt
  24.   //Rendering des Kubuses
  25.   //Inkrementierung von rot
  26. end;


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mär 10, 2006 11:45 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Specular Licht ist von der Betrachterposition abhängig. Der Glanzpunkt ist ja immer dort am stärksten / hellsten wo Einfallswinkel = Ausfallswinkel, welche natürlich sowohl von Lichtposition als auch vom Betrachter abhängen.

D.h. wenn du den Blickwinkel auf eine Kugel um 90 Grad änderst, sollte sich der Glanzpunkt um 45 Grad verschieben. Für Licht das nicht mit rotieren soll, solltest du die diffuse-Komponente setzen.

Aber zusätzlich hast du hier auch nirgendwo ein LoadIdentity der Modelview-Matrix. Wenn das der gesamte Render-code ist solltest du ihn vielleicht ändern zu:

Irgendwo ne Variable Rotation;

glLoadIdentity();

Licht setzen

Rotation = Rotation +1;
glRotatef( Rotation, 1, 1, 0 );

Objekt(e) Zeichnen

Aber möglicherweise machst du sowas in der Art ohnehin schon mit deiner rot-Variable, nur das LoadIdentity fehlt mir hier wie gesagt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mär 10, 2006 14:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Falls sichd er Betrachter aus irgendwelchen Gründen nicht auf der negativen Z-Achse befindet, wäre noch anzuraden den LocalViewer zu aktivieren. Das geht mit glLightModel.

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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]