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

Aktuelle Zeit: So Jul 20, 2025 00:35

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Okt 17, 2004 23:58 
Offline
DGL Member

Registriert: So Okt 17, 2004 23:36
Beiträge: 3
Also ich komme nicht mehr weiter. Bei meinem TRIANGLE_FAN erscheint das definierte Licht, und auf der (großen) Ebene, die darunter ist, nicht. Das Licht kommt von oben P=(0,10,0,1) und strahlt senkrecht nach unten. Normalerweise müsste das Licht auf die Ebene (deren Fläche viel größer als die der Pyramidegrundfläche) übergehen, allein schon wegen dem Streuwinkel von 30°. Ich habe alles versucht: Normalenvektor ist dabei. Was ist noch falsch. Das QUAD steht im Text direkt unter dem FAN. Das kann doch nicht sein?


Code:
  1.     LightDirection[0] := 0.0;
  2.     LightDirection[1] := -1.0;
  3.     LightDirection[2] := 0.0;
  4.  
  5.  
  6.  
  7.     glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, @LightDirection[0]);
  8.     glLightf (GL_LIGHT0, GL_SPOT_CUTOFF   , 30.0);
  9.     glLightf (GL_LIGHT0, GL_SPOT_EXPONENT , 50.0);
  10.     glLightfv(GL_LIGHT0, GL_AMBIENT       , @blau);
  11.     glLightfv(GL_LIGHT0, GL_DIFFUSE       , @gelb);
  12.     glLightfv(GL_LIGHT0, GL_POSITION      , @P[0]);
  13.  
  14.  
  15.     glLightModel(GL_LIGHT_MODEL_TWO_SIDE,1);
  16.  
  17.  
  18.  
  19. glBegin(GL_TRIANGLE_FAN);
  20. glNormal(0,-1, -1);glvertex(0,0,0);
  21.                    glVertex(-1,-1,-1);
  22.                    glVertex(1,-1,-1);
  23. glNormal( 1,-1,0); glVertex(1,-1,1);
  24. glNormal( 0,-1,1); glVertex(-1,-1,1);
  25. glNormal(-1,-1,0); glVertex(-1,-1,-1);
  26.  
  27.  
  28.  
  29. glEnd;
  30.  
  31.  
  32. glBegin(GL_QUAD_STRIP);
  33. glNormal(0,-1,0); glVertex(-10,-1,-10);
  34.                  glVertex(-10,-1, 10);
  35.                  glVertex( 10,-1,-10);
  36.                  glVertex( 10,-1, 10);
  37. glEnd;
[/code]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 18, 2004 07:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Kannst du dazu bitte einen Screenshot posten, damit wir uns das besser vorstellen können? Wär ned schlecht.
Allgemein kann ich dir nur sagen, das das OpenGL-Licht nicht für komplexe Lichberechnungen geschaffen ist, wwil es da Licht per Vertex und nicht, wie du es vermutlich brauchen würdest, per Pixel. Da solltest du besser Shader verwenden.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Hier der Screenshot
BeitragVerfasst: Mo Okt 18, 2004 18:59 
Offline
DGL Member

Registriert: So Okt 17, 2004 23:36
Beiträge: 3
Hier ist nun der Screenshot. Leider habe ich die Ebene nicht heller bekommen. Hat jemand ein Tipp für mich?
Habe mit GlMaterial* und glLight* alles versucht, ging nicht. Auch den Richtungsvektor auf y=-1&1 getestet.[/img]


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 19, 2004 06:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich hab jetzt mit OGL-Licht noch nicht so viel gemacht, ich könnte mir aber vorstellen, dass, da ja der Spot nicht auf die Vertices der großen Fläche trifft, beeinflusst das Licht die Fläche nicht. Probiers mal mit einer anderen Lichtquelle aus, die in alle Richtungen strahlt.

Und jetzt gehts auf zur Systems nach München :D

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 19, 2004 10:37 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Boda hat recht, OpenGL Licht ist per Vertex, und dadurch, dass die Vertices recht weit von der Lichtquelle entfernt sind, und diese ein Punktlicht ist, stimmt das Ganze nicht.
Lösungen sind:
* OpenGL Licht verwenden, Bodenebene unterteilen (z.B. in 16x16 Quads, bei Bedarf Tesselation erhöhen)
* Per Pixel Licht mit einem Shader oder einer Cubemap verwenden

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 20, 2004 17:52 
Offline
DGL Member

Registriert: So Okt 17, 2004 23:36
Beiträge: 3
Danke für die Hilfe, klingt logisch. Werde es sofort ausprobieren.....


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.007s | 16 Queries | GZIP : On ]