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

Aktuelle Zeit: Fr Jul 18, 2025 11:20

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit Spotlight
BeitragVerfasst: Mo Jun 09, 2008 12:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich hab mich uete ma an einem Spotlight versucht. Aber irgendwie will das nich.
So hab ich das gemacht:
Code:
  1. procedure TForm1.Render;
  2. const
  3.   light_position : Array[0..3] of GlFloat = (0.0, 5.0, 0.0, 1.0);
  4.   light_ambient  : Array[0..3] of GlFloat = (0.8, 0.0, 0.0, 1.0);
  5.   light_diffuse  : Array[0..3] of GlFloat = (0.8, 0.0, 0.0, 1.0);
  6. var
  7.   LightDirection : Array[0..2] of GlFloat;
  8. begin
  9.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  10.  
  11.   glMatrixMode(GL_PROJECTION);
  12.   glLoadIdentity;
  13.   gluPerspective(45, ClientWidth/ClientHeight, NearClipping, FarClipping);
  14.  
  15.   glMatrixMode(GL_MODELVIEW);
  16.   glLoadIdentity;
  17.   glTranslatef(0,0,-20);
  18.   glRotatef(30,1,0,0);
  19.  
  20.   LightDirection[0] := 0;
  21.   LightDirection[1] := -1;
  22.   LightDirection[2] := 0;
  23.   glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, @LightDirection[0]);
  24.  
  25.   glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 10.0);
  26.   glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 50.0);
  27.  
  28.   glLightfv(GL_LIGHT0, GL_AMBIENT,  @light_ambient[0]);
  29.   glLightfv(GL_LIGHT0, GL_DIFFUSE,  @light_diffuse[0]);
  30.   glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]);
  31.  
  32.   glEnable(GL_LIGHTING);
  33.   glEnable(GL_LIGHT0);
  34.  
  35.   glBegin(GL_QUADS);
  36.     glColor3f(0.5,0.5,0.5); glVertex3f( 10,0, 10);
  37.     glColor3f(0.5,0.5,0.5); glVertex3f( 10,0,-10);
  38.     glColor3f(0.5,0.5,0.5); glVertex3f(-10,0,-10);
  39.     glColor3f(0.5,0.5,0.5); glVertex3f(-10,0, 10);
  40.   glEnd;
  41.  
  42.   SwapBuffers(DC);
  43. end;


Der größte Teil vom Code stammt aus dem Tutorial. Das ist das Ergebnis des ganzen:
Bild

hab ich da irgenwelche Parameter falsch gesetzt, oder warum hab ich keinen Spot?!
Schonma DANKE für die Hilfe.

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 12:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Dein Quad hat keine Normale. :)

Und wenn es eine Normale hat: Das dürfte nicht nach Spotlight dann aussehen, da die OpenGL-Beleuchtung nur Per Vertex gilt. Also viele kleine Quads, statt einem großen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 22:36 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Wie setzt ich die Normale? Im Tutorial steht was von glNormalx,
aber das geht nich und im DGLWiki find ich auch nix.
Und im tutorial steht das ich mit dem Code das erreichen sollte:
Bild
Und das sieht nich so aus als würde er bloß die Triangles/Vertex
einfärben, oder?? Irgendwie steh ich schon wieder mal total auf
dem schlauch xD

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 22:44 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
glNormal
Das x steht nur für die unterschiedlichen Parameter die möglich sind.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 23:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Achso, LOL
naja hab die Normale jetzt gesetzt, geht aber immer noch nich!
so richtig: ?
Code:
  1.   glBegin(GL_QUADS);
  2.     glNormal3f(0,1,0);
  3.     glColor3f(0.5,0.5,0.5); glVertex3f( 10,0, 10);
  4.     glColor3f(0.5,0.5,0.5); glVertex3f( 10,0,-10);
  5.     glColor3f(0.5,0.5,0.5); glVertex3f(-10,0,-10);
  6.     glColor3f(0.5,0.5,0.5); glVertex3f(-10,0, 10);
  7.   glEnd;


MfG Bergmann


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 09, 2008 23:41 
Offline
DGL Member

Registriert: Do Feb 21, 2008 10:49
Beiträge: 55
Wohnort: Dresden
Programmiersprache: FPC/Linux
die normale musst du nur einmal setzen.

_________________
Gruß McWurscht - sorry für's Posting.

Wer mal meinen bisher erfolgreichsten Erguss in Sachen Web-Programmierung sehen will: RCV


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 08:12 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also an seinem Normalensetzcode ist prinzipiell erstmal nix auszusetzen.

@Bergmann: Was meinst du mit Triangles und Vertices einfärben? Oh... Eigentlich sieht deine Ausgabe besser aus als sie dürfte. Hast du an deinem Quellcode nochmal was an der Fläche geändert? Eigentlich besteht die doch nur aus einem großen Quad, oder? Dann sollte eigentlich die Beleuchtung recht unansehnlich aussehen. Außerdem sieht die sehr eckig aus. Das ist auch ungewöhnlich. Hast du Flat oder Smoothshading aktiviert? (Geht das überhaupt in die Interpolation nach der Lichtberechnung ein?)

Also irgendwie mystisch. Jedenfalls für mich im Moment. Oder hab ich was übersehen/vergessen?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 08:28 
Offline
DGL Member

Registriert: Do Feb 21, 2008 10:49
Beiträge: 55
Wohnort: Dresden
Programmiersprache: FPC/Linux
Flash hat geschrieben:
Also an seinem Normalensetzcode ist prinzipiell erstmal nix auszusetzen.

sorry, war schon im halbschlaf. hab das color irgendwie zu normal gelesen, was aber darin resultiert, dass er 3 mal unnötig glcolor aufruft.

_________________
Gruß McWurscht - sorry für's Posting.

Wer mal meinen bisher erfolgreichsten Erguss in Sachen Web-Programmierung sehen will: RCV


Zuletzt geändert von McWurscht am Di Jun 10, 2008 08:35, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 08:29 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Das Bild ist doch aus dem Wiki geklaut.
Und somit ist da auch die Erklärung: Das Vertexproblem.
Die eine Fläche wird nicht komplett bestrahlt und bleibt daher schwarz.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 13:01 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
So habs jetzt hin bekommen...hab mir ne fläsche aus 30x20 Quads zusammen gebaut.
Ergebniss:
Bild

und das bild hab ich nich geklaut xD
hab ja extra drüber geschrieben, das im Tutorial steht, das es so ausehen müsste!

MfG & THX Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 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.010s | 15 Queries | GZIP : On ]