Entwickler-Ecke

Multimedia / Grafik - OpenGL: Licht in 3D-Scene...


Blackbird - Di 15.10.02 17:25
Titel: OpenGL: Licht in 3D-Scene...
Hi Leute...

wiedermal plagt mich ein Problem in OpenGL bei dem ich nicht weiter weiß!

Ich habe eine 3D-Scene ertstellt (recht einfach gehalten). Dort befinden sich zwei Quader nebeneinander, dahinter eine Wand. Alles ist mit Texturen überzogen.
Auch für den User Input ist gesorgt. Man kann durch diese (kleine...sehr kleine) Welt bewegen. Die Steuerung funktioniert dabei wie bei den gängigen Ego Shootern. Soweit so gut....

Jetzt möchte ich aber Licht in die Ganze Sache bringen. Also habe ich eine Lichtquelle erstellt und positioniert.
Auch noch alles OK. - Wenn ich mich jetzt aber im Raum bewege ändert sich auch die Position der Lichtquelle zur restlichen Welt (da die Lichtquelle ja nicht bewegt wird)! Ich möchte aber, dass sie relativ zu den Objekten den gleichen Standpunkt beibehält - die Szene also immer gleich ausgeleuchtet wird

FRAGE NUN: Wie mach ich das , bzw. wie machen es die prof. Ego Shooter? (mal abgesehen von Lightmaps)

Bitte helft mir.....


Bis denn dann........


Andreas Pfau - Mi 16.10.02 17:06

Äh... ich sthe wohl grade auf der Leitung...
Soll die Lichtquelle sich jetzt mit dem Betrachter bewegen oder immer an der gleichen stelle sein? Egal, auf jeden Fall sollte dein Quelltext so aussehen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
{ * }
glPushMatrix;
 glTranslate(X, Y, Z);
 glRotate(U, V, W);
 { ** }
 glPushMatrix;
  { Objekt 1}
 glPopMatrix; glPushMatrix;
  { Objekt 2}
 glPopMatrix;
glPopMatrix;


Entweder muss sich die Lichtquelle hier * oder hier ** befinden, je nach dem (Glaube ich zumindest, probieren!).

- AP -