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

Aktuelle Zeit: Fr Mai 09, 2025 19:35

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: Licht setzen bei Cube Map
BeitragVerfasst: Di Dez 07, 2010 12:01 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
Guten Tag,

Ich bin momentan ein wenig am Verzweifeln.
Mein Problem ist bei einem Cubemapping die Lichtquelle so zu platzieren, dass sie nicht mitdreht, sondern immer vom Betrachter aus auf das Objekt, sprich in meinem Fall eine Kugel mit 6 Texturen drauf ausgerichtet ist. Bei einer Drehung soll diese Fix stehenbleiben und das Objekt dreht sich alleine.
Mache ich das ohne Cube Map so funktioniert das auch nachdem ich das Licht nach dem erstellen der Projektionsmatrix und anschliessender Modelviewmatrixerstellung per glEnable(GL_Light0) und glEnable(GL_Lighting) gesetzt habe. Bei dem CubeMapping ergibt sich nun das Problem, dass ich die beiden Intitialisierungen der Projektionsmatrix und ModelviewMatrix vertauschen muss. Sprich erst die die ModelviewMatrix intitialisieren und dann die Projektionsmatrix. Dies bedeutet ich drehe nicht mehr das Objekt sondern die Kamera. Setze ich nun das Licht so dreht sich das Licht mit dem Objekt mit, sprich irgendwann sehe ich nur noch den im Schatten des Lichtkegels befindlichen Teil der Kugel. Ich hatte nun versucht zwei Lichtquellen zu setzen, jedoch funktioniert dies nicht, da er immer nur eine Lichtquelle verwendet. (Bei Umkehrung des Vorzeichens für die Z-Richtung bei einer Lichtquelle ist das Licht auch auf einmal auf der anderen Seite, jedoch kann ich nicht zwei Lichtquellen aktivieren). Kennt jemand das Problem und vielleicht auch deren Lösung.

Ich bin für jeden Typ sehr dankbar,

MfG

Heavenssake007


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Di Dez 07, 2010 14:11 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Zitat:
Dies bedeutet ich drehe nicht mehr das Objekt sondern die Kamera
Nein. Die ModelViewMatrix hat ihrem Namen nicht zufällig, sondern weil da die Transformationen für Objekt und die Kamera drinnen stehen. Grundsätzlich ist es so, dass zuerst die ModelViewMatrix angewadt wird, dann wird beleuchtet, dann wird die Projektionsmatrix angewandt. Wenn du objekttransformationen und Kameratransformationen getrennt behandeln willst, gibts soweit ich weiß nur die Möglichkeit, die ModelViewMatrix in zwei Matrizen aufzuteilen (ModelMatrix und ViewMatrix bzw ModelViewMatrix und ModelMatrix, je nachdem wie du´s brauchst).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Mi Dez 08, 2010 11:55 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
Hmm,

Gibt es nicht eine einfache Variante mein Licht mitzudrehen?

Mein Source Code sieht momentan so aus:

Code:
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity;

   glMatrixMode(GL_PROJECTION);
   glLoadIdentity;

   glEnable(GL_Light0);
   glEnable(GL_Lighting);

   gluPerspective(1, 1, NearClipping, FarClipping);

    //nun neue oder alte Matrix übernehmen
    if FbTextureLoad then
    begin
      if TestsMatrix(FModelViewMatrix)=false
         then glMultMatrixf(@FModelViewMatrix);
    end else begin
      glTranslatef(0, 0, -130);
      InternalRotate(FRotation);
    end;

   //Alte Matrix übergeben
   glGetFloatv(GL_MODELVIEW_MATRIX, @FModelViewMatrix);

   DrawCubeObject;


Wie gesagt, man dreht sich praktisch um das Objekt, das Licht bewegt sich jedoch nicht mit.

Vielen Dank,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Mi Dez 08, 2010 16:14 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7809
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Position des Lichtes ist relativ zur Modelviewmatrix die in dem Moment aktuell ist, wenn du das Licht enablest. D.h. wenn das Licht sihc mitdrehen soll, musst du das nach dem setzen deiner neuen "Sichtweise/Kameraposition auf die Szene" enablen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Do Dez 09, 2010 15:28 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
@Flash

Genau das ist mein Problem. Das Licht dreht sich mit der Drehung der Kugel mit, so dass ich irgendwann die dunkle Rückseite der Kugel sehe. Mein Licht wird dabei nach der Rotation enabled. Ich bekomme egal was ich mache immer dasselbe Ergebnis. Möchte aber im Grunde nur dass ich immer ein gleichmäßig erleuchtetes Objekt sehe, egal ob ich es um 90°, 180°, etc. drehe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Do Dez 09, 2010 19:15 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7809
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Möchtest du, dass die Lampe "an der Kamera hängt" oder wie auf einer Modelleisenbahnplatte an einem Bestimmten Punkt in der Szene?

Wenn dir Licht nicht wirklich wichtig ist, oder du ein Gemisch gern hättest, dann stell das Ambiente Licht heller ein. Das erhellt alles gleichmäßig.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Licht setzen bei Cube Map
BeitragVerfasst: Fr Dez 10, 2010 11:28 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
@Flash

Das Licht soll an der Kamera hängen. Wie gesagt, bei nicht cube Maps habe ich das auch immer hinbekommen, nur bei den CubeMaps mit vertauschter ModelView- und Projektionsmatrix schaffe ich das nicht. Das mit dem gar kein Licht hatte ich auch schon, jedoch würde ich gerne Licht verwenden, da es schon meines Erachtens nach besser aussieht.


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: Google [Bot] und 8 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.009s | 17 Queries | GZIP : On ]