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

Aktuelle Zeit: Fr Jul 18, 2025 15:43

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: mehrere Lichtquellen
BeitragVerfasst: So Jan 27, 2008 22:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Ich habe vor nem Monat ungefähr nen Bumpmap shader fertig geschrieben. Der funktioniert jetzt allerdings so wie er ist, aber nur für eine Lichtquelle. Wie kann ich jetzt mehrere Lichtquellen brücksichtigen? Ich habe gelesen, dass man das mit Pixelbuffer objekten macht, aber wie kann ich die im zusammenhang mit dem shader verwenden?

danke schonmal!

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 28, 2008 13:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Genau so, wie du die erste Lichtquelle einberechnest berechnest du auch die anderen ein. Dann addierst du die Werte einfach aufeinander.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 28, 2008 17:07 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Man kann auch mit einer for Schleife über mehrere Lichtquellen iterieren, jedoch gibt es eineige einschränkungen wie z.B. nicht genügend instructions und das man für jede anzahl von lichtquellen einen eigenen schader braucht (erst Shadermodel 4.0 Karten können im Fragmentshader uniform Variablen indizieren, welche für eine dynamische anzahl von licht quellen nötig sind)

_________________
Lumina plattform unabhängige GLSL IDE


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 03, 2008 16:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
meine Frage geht eigentlich nicht um den logischen Hintergrund. Ich hab mir das so vorgestellt, dass ich die geometrie, normalen, tiefen, diffusen und specular anteile eines Materials in eigene Texturenrender, so wie beim Deferred Rendering und anschließend diese einem Shader übergebe mit denn Lichtinformationen, der dann in eine weitere Textur die Luminanz schreibt (als rgb werte) und diese durch eine Schleife (im Programm nicht im shader) immer weiter überschreibt, bis alle Lichtquellen durchgearbeitet wurden.
ich habe halt nur keine ahnung, wie ich da mit den Pixelbuffer, oder Framebuffer arbeiten muss.

Wie kann ich zum Beispiel den Shader dazu "zwingen" in einen bestimmten Pixelbuffer zuschreiben und darauß zu lesen?
Brauch ich mehrere Pixelbuffer, oder kann ich alle oben genannten informationen in einen Pixelbuffer schreiben?

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 03, 2008 16:26 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Die Beschreibung entspricht dem eines deferred Renderers. in dem Fall wird additives Blending aktiviert. (Man kann nicht in eine Textur rendern, aus der gerade gelesen wird)

Hier hab ich ein Tutorial für deferred shading mit Lumina geschrieben, das script sollte grob erklären wie das nötige setup ausehen muss: http://lumina.sourceforge.net/Tutorials ... ading.html

Für eine eigene Implementierung werden mindestends GLSL shader und Framebuffer Objekte benötigt (Vertexbuffer Objekte sollten auber auch verwendet werden.)

_________________
Lumina plattform unabhängige GLSL IDE


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 10, 2008 11:52 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Dankeschön, dass es einem Deferred rendering entspricht weiß ich, da hab ich die idee ja her und dass ich framebuffer objekte brauche weiß ich auch, allerdings wollte ich lieber pixelbuffer objekte nehmen, um mich von der "power of two" regel lösen zu können, da ich kein display format kenne, das quadratisch ist. Mein Problem liegt darin, dass ich nicht weiß, wie ich den Pixelbuffer erstellen soll und anschließend vom shader aus dort hinein schreiben kann um die Daten der Lichtquellen darin zu sammeln. Das Pixelbuffer tutorial von euch ist nicht schlecht, wie Pixelbuffer funktionieren hab ich schon verstanden (von der Idee her) allerdings bekomm ich sie nicht zum laufen nach dem Tutorial und selbst wenn ich es hinkriegen würde wüsste ich immer noch nicht, wie ich shaderergebnis für shader ergebnis dort hinein speichern kann um sie anschließend zu einem Bild zusammen zurendern.

Der Link den du mir geschickt hast ist ne tolle sache, allerdings steig ich da überhaupt nicht durch.

_________________
Klar Soweit?


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 » Shader


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 4 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 | 15 Queries | GZIP : On ]