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

Aktuelle Zeit: Do Jul 17, 2025 20:43

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Licht scheint "mitzuwandern"
BeitragVerfasst: Mi Aug 04, 2004 20:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 25, 2003 12:44
Beiträge: 29
Hallo!
Ich mach zur Zeit nen 3D-Editor und dabei habe ich folgendes Problem:
in der 3D-Ansicht wird das Model dunkler, je näher man ranzoomt und heller je weiter man weg zoomt!
Ist das normal oder mach ich was falsch?
Im Anhang ein Bild zu meinem Problem.
Hier der Code zum Rendern:
Code:
  1.   glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
  2.   glLoadIdentity;
  3.   glPushMatrix;
  4.   glTranslatef(tileeditor.openglview.x,tileeditor.openglview.y,tileeditor.openglview.z);
  5.   glScalef(tileeditor.openglview.zoom,tileeditor.openglview.zoom,tileeditor.openglview.zoom);
  6.   glRotatef(tileeditor.openglview.ry,0,1,0);
  7. //...
  8.     glColor3f(1,1,1);
  9.     glEnable(GL_LIGHTING);
  10.     glEnable(GL_LIGHT0);
  11.     glEnable(GL_TEXTURE_2D);
  12.  
  13.     //Groups durchlaufen
  14.     for j := 0 to tileeditor.groups.count-1 do
  15.     for i := 0 to length(TGroup(tileeditor.groups.items[j]^).faces)-1 do
  16.     begin
  17.       with TileEditor do
  18.       begin
  19.         if TGroup(tileeditor.groups.items[j]^).material > -1 then
  20.         begin
  21.           glEnable(GL_TEXTURE_2D);
  22.           glBindTexture(GL_TEXTURE_2D,texture); //die zeile hab ich geändert, weil wär sonst zu lang ;)
  23.         end
  24.         else glDisable(GL_TEXTURE_2D);
  25.         glBegin(GL_TRIANGLES);
  26.         tempface := Faces.Items[Face_IdToList(TGroup(tileeditor.groups.items[j]^).faces[i])];
  27.         glTexCoord2f(tempface.t_u[1],tempface.t_v[1]);
  28.         glNormal3f(tempface.normals[1,1],
  29.                    tempface.normals[1,2],
  30.                    tempface.normals[1,3]);
  31.         glVertex3f(TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[1])]^).x,
  32.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[1])]^).y,
  33.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[1])]^).z);
  34.  
  35.         glTexCoord2f(tempface.t_u[2],tempface.t_v[2]);
  36.         glNormal3f(tempface.normals[2,1],
  37.                    tempface.normals[2,2],
  38.                    tempface.normals[2,3]);
  39.         glVertex3f(TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[2])]^).x,
  40.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[2])]^).y,
  41.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[2])]^).z);
  42.  
  43.         glTexCoord2f(tempface.t_u[3],tempface.t_v[3]);
  44.         glNormal3f(tempface.normals[3,1],
  45.                    tempface.normals[3,2],
  46.                    tempface.normals[3,3]);
  47.         glVertex3f(TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[3])]^).x,
  48.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[3])]^).y,
  49.                    TVertex(Vertices.Items[Vert_IDtoList(tempface.vertices[3])]^).z);
  50.         glEnd;
  51.       end;
  52.     end;
  53.   glPopMatrix;
  54.  


EDIT by Fiji-Fighter: Attachement-Name geändert, damit das Bild angezeit wird. (der Punkt im DAteiname "lighting.bug.jpg" hat wohl das Problem verursacht ;-)


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 05, 2004 11:56 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
hi

wo ist dein licht?
wenn es nicht auf höhe der kamera oder dahinter ist dann hätte ich eine erklärung
anzubieten:
:?
wenn ich das richtig sehe bewegst du nur dein model und das licht nicht.
das bedeutet irgendwann ist das licht hinter dem model und das model steht in seinem eigenen schatten.

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 05, 2004 17:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 25, 2003 12:44
Beiträge: 29
Ich hab für das Licht gar keine Position angegeben, einfach Standard Licht 0 an und fertig. (Funktioniert ganz ordentlich ;>)
Wie bewege ich das Licht?
Was für ne Matrix muss ich da transformieren?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 05, 2004 17:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
schau dir mal bzgl. des HAndlings des OpenGL Lichtes folgendes Tutorial an:
http://www.delphigl.com/script/do_show. ... 8&action=2

da sollten die Fragen (normalerweise) beantwortet werden...
ansonsten einfach nochmal genauer nachfragen :-)

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 05, 2004 17:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 25, 2003 12:44
Beiträge: 29
Danke, mit dem Tutorial hat sich meine Frage jetzt erledigt :)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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.008s | 14 Queries | GZIP : On ]