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

Aktuelle Zeit: Fr Jul 11, 2025 06:58

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: PHONG Licht mixen
BeitragVerfasst: So Sep 23, 2012 16:37 
Offline
DGL Member
Benutzeravatar

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

ich wollt heute meinen PHONG Shader etwas verbessern. Bis jetzt ist es so, das ich die Farbwerte der einzelnen Lichter (Ambient, Diffuse, Specular) nacheinander addiere. Das gefällt mir aber nicht so richtig, weil ich dann nie die Farbe erhalte, die ich eingestellt habe. z.B: Ambient ist rot (1,0,0), Diffuse ist grün (0,1,0), Speculat ist abgeschalten (bzw. schwarz), dann ist die resultierende Farbe im diffusen Bereich gelb (1,1,0).
Nun hab ich mir folgendes gedacht. Ich nehm einfach den Alpha-Wert der Farben um sie untereinader zu mixen (c1 * (1−a) + c2 * a). Dann hab ich als resultat immer genau die Farbe, die ich auch eingestellt habe. Das einzige was mich jetzt noch stört ist, dass beim mixen der Farben ein kleiner Bereich entsteht, bei dem die resultierende Farbe dunkler ist, als die beiden Ausgangsfarben (siehe Bild). Kann man das noch irgendwie beheben?

MfG & Thx Bergmann.


Dateianhänge:
PHONG.png
PHONG.png [ 11.52 KiB | 5276-mal betrachtet ]

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PHONG Licht mixen
BeitragVerfasst: So Sep 23, 2012 20:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Bis jetzt ist es so, das ich die Farbwerte der einzelnen Lichter (Ambient, Diffuse, Specular) nacheinander addiere.

Das ist auch die physikalisch korrekte Vorgehensweise. Die Photonen die von beiden Lichtquellen ausgesendet werden beeinflussen sich nicht gegenseitig. Gelb ist eben das richtige Ergebnis, wenn du Rot und Grün mischst.

Ich schlage vor du verwendest keine "puren" Farben für dein Licht. Sowas kommt in der Natur nämlich so gut wie nicht vor. Du hast immer ein ganzes Spektrum von Farben. Wenn du eine rote Lichtquelle haben möchtest, nimm statt 255 0 0 lieber etwas wie 255 32 32.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PHONG Licht mixen
BeitragVerfasst: Mo Sep 24, 2012 01:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hm, hast auch wieder Recht. Naja dann bleibts halt so wie's war :mrgreen:

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: PHONG Licht mixen
BeitragVerfasst: Mo Sep 24, 2012 07:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Du könntest allerdings über HDR rendern, dadurch kannst du viele hässliche Nebeneffekte vermeiden.
Um z.B. zu verhindern das dein Licht komplett weiß wird, könntest du Tonemapping einsetzen.

_________________
Meine Homepage


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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 | 18 Queries | GZIP : On ]