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

Aktuelle Zeit: Do Aug 07, 2025 07:34

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



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shadows im Shader
BeitragVerfasst: Do Jun 02, 2005 02:55 
Offline
DGL Member
Benutzeravatar

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

ich lese hier im Forum immer wieder davon das es möglich ist im Vertex/PixelShader schatten zu erzeugen...

Wie soll das gehen???
Das einzige was ich mir vorstellen kann ist das man es normalen abhängig macht.. also wenn die normale mehr als 90° vom licht wegzeigt = schatten...

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 02, 2005 07:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Das wäre dann ja ganz normale Beleuchtung - mit Schatten möchte man ja nicht nur den Lichteinfall aufgrund des Winkels einer Oberfläche zum Licht, sondern auch die Beeinflussung der Beleuchtung durch dazwischen liegende Objekte berücksichtigen. Raytracing ist eine Methode, die man inzwischen für bestimmte Anwendungen durchführen kann, Depth Textures eine andere:
Das funktioniert im Prinzip so: man rendert die Szene von der Lichtquelle aus und speichert den Depth Buffer in eine Textur, im Fragmentshader überprüft man für jedes Pixel (man muss dann die 3D-Position rücktransformieren), ob die Distanz zur Lichtquelle größer ist, als das korrsepondierende Pixel in der Tiefentextur - und wenn das der Fall ist, liegt es im Schatten - für die zweite Methode benötigt man nicht unbedingt Shader, kann damit aber recht einfach bestehende Shader um "Schattenwurf" erweitern (natürlich mit allen Nachteilen von Depthtextures, deren größter ist, dass die Art der Lichtquelle durch die Begrenzung der Depthtexture recht eingeschränkt ist).

Eine weitere Methode ist das "automatische" Generieren von Stencilschatten im Vertexshader - diese Methode ist allerdings nicht sehr zu empfehlen, da hier für jedes sichtbare Dreieck quasi drei zusätzliche Dreiecke an OpenGL gesandt werden müssen (immerhin muss man dann dafür mit dem Modell CPU seitig nichts mehr machen).

Mich würde übrigens interessieren, wie es in 3D-Mark 05 gemacht wurde, dass die Schatten aussehen, als wären sie keinen Einschränkungen unterworfen, andererseits mit weiterer Entfernung von Lichtquelle und Objekt schwächer werden (also kein harter Übergang wie bei normalen Stencil Schatten) - ich nehme mal an, es sind Stencilschatten, die im Fragmentshader noch kreativ geändert wurden (etwa Pixel nur zeichnen, wenn Stencil Bit gesetzt - dann aber Entfernung zur Lichtquelle berücksichtigen).

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


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


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.018s | 19 Queries | GZIP : On ]