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

Aktuelle Zeit: Sa Jul 19, 2025 22:56

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fragen zum Licht
BeitragVerfasst: Sa Feb 10, 2007 12:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 25, 2005 17:51
Beiträge: 464
Hiho,

im Vertexshader hat man ja Zugriff auf die Struktur, in der die gesetzten Lichtquellen abgelegt sind.
In der FixFunction-Pipeline ist es ja wichtig, wo man das Licht setzt, also z.B. vor oder nach gluLookAt.
Da wollt ich mal fragen, wie die Lichtquelle im Shader ankommt? "Roh" oder schon transformiert? Und wenn roh, wie kann man dann unterscheiden, ob z.B. die Lichtquelle vor oder nach der Kamera gesetzt wurde?

Eine andere Frage hätte ich noch zum Flat-Shading. Wie kann man sowas per Shader realisieren? DIe Übergabevariablen von VS zu PS sind doch immer varying, oder?

_________________
__________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 13, 2007 09:29 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
morgen,

mal sehen ob ich nich noch zu verschlafen bin... :wink:

ich bin der meinung es ist so das die lichtposition so im shader ankommt wie die vertexposition also wie du sagst roh (nicht transformiert)
und sie zu transformieren musst du sie einfach mit gl_ModelViewProjectionMatrix mulitlizieren

@flat shading
hab ich mir zwar noch nie gedanken drüber gemacht aber ich würde sagen die normalen pro fläche angeben sollte es tun

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 14, 2007 09:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 25, 2005 17:51
Beiträge: 464
PhoenixGL hat geschrieben:
ich bin der meinung es ist so das die lichtposition so im shader ankommt wie die vertexposition also wie du sagst roh (nicht transformiert)
und sie zu transformieren musst du sie einfach mit gl_ModelViewProjectionMatrix mulitlizieren


Wenn dann noch nur mit der gl_ModelView, oder? Um in den Raum der "eye-Koordinaten" zu kommen.

Aber irgendwie muss sich das doch auch unterscheiden lassen, wo die Lichtquelle gesetzt wurde. Ich denke die neuen Grafikkarten haben keine FixFunction-Pipeline mehr sondern emulieren das durch Standard-Shader. Und irgendwie müssen die es ja gemacht haben, dass das Licht vor gluLookAt an einer anderen Stelle ist als nach gluLookAt.

_________________
__________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 14, 2007 09:45 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
Pellaeon hat geschrieben:
Wenn dann noch nur mit der gl_ModelView, oder? Um in den Raum der "eye-Koordinaten" zu kommen.

*räusper* stimmt sorry :roll:

Pellaeon hat geschrieben:
Aber irgendwie muss sich das doch auch unterscheiden lassen, wo die Lichtquelle gesetzt wurde. Ich denke die neuen Grafikkarten haben keine FixFunction-Pipeline mehr sondern emulieren das durch Standard-Shader. Und irgendwie müssen die es ja gemacht haben, dass das Licht vor gluLookAt an einer anderen Stelle ist als nach gluLookAt.

äh... ich glaub ich weis jetzt was du meinst und ich fürchte da musst du deinem shader mitteilen was er wann machen soll

@grafikkarten: da "wissen" die treiber ja was sie in welcher reihenfolge an die graka senden sollen

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 18, 2007 04:20 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Die Lichtquellenposition wird beim setzten mit der gl_ModelViewMatrix multipliziert. Wenn man mehrere Lichtquellen verwendet sollte man diese nicht als varying an den Fragmentshader weiter geben, da die anzahl der Varyings stark begrenzt ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 18, 2007 10:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 25, 2005 17:51
Beiträge: 464
oc2k1 hat geschrieben:
Die Lichtquellenposition wird beim setzten mit der gl_ModelViewMatrix multipliziert. Wenn man mehrere Lichtquellen verwendet sollte man diese nicht als varying an den Fragmentshader weiter geben, da die anzahl der Varyings stark begrenzt ist.


Erstmal danke für die Antwort.
Da hab ich gleich noch ein paar Fragen zu^^

Wo steht das denn? Ich hab mir mal die Spec von der offiziellen Seite zu glSlang grob durchgelesen, habe dazu aber nichts gefunden(kanns natürlich auch überlesen haben)

Wegen der Übergabe: die Lichtdaten gibt man doch eh nicht an den Fragmentshader weiter, oder? Na gut außer beim Bumpmapping. Aber Rendern mehrerer Lichtquellen macht man doch eh über mehrere Renderpasses, soweit ich gelesen habe(über Transparenz).

_________________
__________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup


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: 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.008s | 16 Queries | GZIP : On ]