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...
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).
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.