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

Aktuelle Zeit: Fr Jul 04, 2025 01:00

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Light range?
BeitragVerfasst: Fr Okt 28, 2011 07:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

gibt es einen gescheiten weg zu berechnen wie weit ein licht reicht?
Im Deferred Rendering will ich gern nur das light volume zeichnen und kein Fullscreen Quad.. beim SpotLight mache ich das einfach indem ich ein "undendlich" langen cone zeichne, beim point light laeuft es bei einer unendlich grossen sphere allerdings auf das Fullscreen Quad hinaus... :)

Daher, wie berechnet man wie weit das licht geht, bzw ab wann es z.B. eine intensitaet von weniger als 0.1 hat, komplett null wird es ja vermutlich niemals werden.

Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Light range?
BeitragVerfasst: Fr Okt 28, 2011 08:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Ich geh mal davon aus das du wissen willst wie Groß das Licht auf der Projektionsebene ist. Um das zu errechnen stell
dir einfach dein Pointlight als Würfel vor und schick für die 4 unteren Punkte jeweils einen Strahl zur Kameraposition, der Schnittpunkt mit
der Projektionsebene ist dabei deine Pixelposition, die höhen des Würfels errechnen sich aus den Abständen ..... mehr infos findest du hier

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Light range?
BeitragVerfasst: So Okt 30, 2011 03:23 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Die Formel für die entfernungsabhängige Beleuchtungsstärke ist

1/(C+dist*L+dist*dist*Q)*Light

Wobei C, L und Q für die Werte von GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION und GL_QUADRATIC_ATTENUATION stehen.
Wenn die Farbe eines Pixels um weniger als 1/255 durch das Licht angehoben wird, wird auf 0 abgerundet, wodurch dort quasi kein Licht mehr zu sehen ist. Also muss man einfach die Formel umstellen. Je nachdem wie die Farbe des Lichtes ist kann das auch noch variieren. Ansonsten einfach die quadratische Gleichung lösen.


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


Wer ist online?

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