DGL https://delphigl.com/forum/ |
|
Shadows im Shader https://delphigl.com/forum/viewtopic.php?f=20&t=4235 |
Seite 1 von 1 |
Autor: | Aya [ Do Jun 02, 2005 02:55 ] |
Betreff des Beitrags: | Shadows im Shader |
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~ |
Autor: | Mars [ Do Jun 02, 2005 07:35 ] |
Betreff des Beitrags: | |
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). |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |