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

Aktuelle Zeit: So Jul 13, 2025 07:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Licht und Fehler
BeitragVerfasst: Mo Jul 23, 2007 02:22 
Offline
DGL Member

Registriert: Mi Mai 30, 2007 15:15
Beiträge: 20
ich möchte das Lich so einstellen das frontal betrachtet die orginal Farbe sichtbar ist und schräg betrachtet abgedunkelt wird.

Ich haber es so versucht allerdings geht es so nicht. Objekt wird mal zu dunkel und mal zu hell dargestellt je nach skallierung. Normalen sind richtig berechnet.
Code:
  1. const
  2.     mat_diffuse    : Array[0..3] of GlFloat = (0.8, 0.8, 0.8, 1.0);
  3.     light_position : Array[0..3] of GlFloat = (0.0, 0.0, -1.0, 1.0);
  4.     light_diffuse  : Array[0..3] of GlFloat = (1.0, 1.0, 1.0, 1.0);
  5. begin
  6.  
  7.   glMaterialfv(GL_FRONT, GL_DIFFUSE,   @mat_diffuse[0]);
  8.  
  9.   glLightfv(GL_LIGHT0, GL_DIFFUSE,  @light_diffuse[0]);
  10.   glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]);
  11.  
  12.   glEnable(GL_LIGHTING);
  13.   glEnable(GL_LIGHT0);
  14.   glColorMaterial(GL_FRONT_AND_BACK,GL_DIFFUSE);
  15.   glEnable(GL_COLOR_MATERIAL);


mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 23, 2007 08:19 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Was meinst Du mit 'richtig berechnet'? Normalen werden mitskaliert und somit länger und kürzer, was zu einer Änderung des Helligkeitsgrades führt. Versuch mal glEnable(GL_NORMALIZE). Damit werden die Normalen immer auf Länge 1 gesetzt, allerdings frisst das ein bisschen an der Performance.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 23, 2007 10:33 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Das Licht, was vom Betrachtungswinkel abhängig ist, ist eigentlich der spekulare Anteil.
Spiel mal ein bischen mit GL_SPECULAR rum, also
glLightfv(GL_LIGHT0, GL_SPECULAR, @light_specular[0]);


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 23, 2007 10:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wobei der speculare Anteil ja ein Überblenden zu einer bestimmten Farbe ist. Also meistens in Richtung weiß. Ich denke auch, dass das Normalisieren da in der Tat schon ausreichen sollte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 23, 2007 12:37 
Offline
DGL Member

Registriert: Mi Mai 30, 2007 15:15
Beiträge: 20
Danke das hat geholfen.

Zitat:
frisst das ein bisschen an der Performance

Wieviel? bzw gibt es bessere Alternativen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 23, 2007 15:11 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Wieviel kann ich leider nicht sagen, da ich bis jetzt immer mit NORMALIZE gearbeitet habe, soll aber nicht viel sein. Er muss halt bei jeder Normale bevor er sie benutzt die Länge normalisieren.
Alternativ kannst Du die Längen nach der Skalierung von Hand angleichen, aber dazu musst Du die Normalen im Zugriff haben (VBO oder DL) ooooder die Skalierung selber berechnen ooooder Du berechnest das Licht über Shader/Lightmaps, ist eh besser als das OGL Licht.

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


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


Wer ist online?

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