Autor Beitrag
Blackbird
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Di 15.10.02 17:25 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: 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:

ausblenden 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 -