Object-Space Normalmap und Schatten

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Object-Space Normalmap und Schatten

Beitrag von starcow »

Schöne Weihnachten Zusammen!

Ich habe in einer kleinen Szene ein seltsames Render-Verhalten und wollte deshalb mal die geschätzten Spezialisten hier nach Rat befragen.
Folgende Situation:
Eine Wölbung, bestehend aus wenigen Polygonen. Dem Mesh ist ein Shader zugewiesen, der eine Object-Space-Normalmap beinhaltet.

Die Krümmung vom Mesh selbst müsste ab einem gewissen Lichtwinkel (Infinite Light) auf sich selbst einen Schatten werfen.
Nun stelle ich aber fest, dass bei aktivierter Normalmap einen Teil dieses Schattens fehlt.

Nach reiflichem Überlegen komme ich zum Schluss, dass eine Normalmap in _keinem_ Fall den gecasteten Schatten beeinflussen dürfte. Völlig unabhängig was in dieser Normalmap drin steht. Der "geworfene" Schatten dürfte doch eigentlich nur von der "echten" Mesh-Geometrie abhängig sein.
Übersehe ich da vielleicht etwas oder handelt es sich bei diesem Verhalten eindeutig um einen Renderfehler?

Der Renderer ist Metalray (Raytracing).

Gruss starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von Schrompf »

Wenn ich das Problem richtig verstanden habe, ist das erwartetes Verhalten. Die Normal Map gibt pro Pixel nur an, wie die Oberfläche an dieser Stelle geneigt ist. Sie gibt nicht an, ob ein benachbarter Pixel vielleicht das Licht blockiert. Für die Frage, ob das Licht auf dem Weg zu diesem Pixel von irgendwas blockiert wird, gibt es eigentlich die gängigen Schattentechniken, also heute praktisch nur noch Shadow Mapping. Und Shadow Mapping hat bei dieser konkreten Situation zwei Probleme:

a) Der Schatten beginnt aufgrund von begrenzter Genauigkeit und geometrischen Unwägbarkeiten nicht sofort hinter dem Schattenwerfer, sondern erst mit etwas Abstand.
b) Die Shadow Map ist nicht beliebig hoch aufgelöst. Es kann also sein, dass der Rand der Kugel schon gar keine Pixel mehr auf der ShadowMap hinterlassen hat und dort demzufolge immer Licht ist.

Für das "Nachbarpixel blockiert Licht"-Thema gab's mal die sogenannte Horizon Map, aber die ist irgendwie nie wieder auf meinem Radar aufgetaucht. Anscheinend gibt es heute bessere Techniken.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von starcow »

Ich danke dir Schrompf für deine Erklärung!
Ich dachte bislang, dass man mittels Raytracing-Verfahren exakte Schatten berechnen kann.
Das Problem in der von mir geschilderten Situation ist aber, das dieser Schattenfehler nur dann auftritt, wenn der Mesh eine Normalmap zugewiesen bekommt.
Ich habe das ganze anhand eines Bildes dokumentiert.
Bild

Die Roten Linien habe ich manuell eingefügt - sie sollen den Schatten (welcher absichtlich nicht 100% deckend gewählt ist) veranschaulichen.

Wenn ich dich jetzt richtig verstanden habe, dürfte die Normalmap den Schatten nicht beeinflussen. Folglich zeigt die Situation einen nun "amtlich" bestätigten Renderfehler.

Gruss starcow
Zuletzt geändert von starcow am 28.12.2015, 20:05, insgesamt 1-mal geändert.
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von Krishty »

Jetzt auf den Bildern sieht das auch mir wie ein Fehler aus.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von Tiles »

Tja, Softimage wird ja aber nun leider nicht mehr weiterentwickelt ...
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von starcow »

Es scheint wirklich ein Fehler zu sein, der sich über etliche Versionen hinzieht.
Tiles hat geschrieben:Tja, Softimage wird ja aber nun leider nicht mehr weiterentwickelt ...
Ja, sehr ärgerlich und schade - nicht nur bezogen auf diesen Fehler...
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Object-Space Normalmap und Schatten

Beitrag von starcow »

Nach erneuten Versuchen konnte ich das Problem zwar eingrenzen, ganz lösen konnte ich es bisher nicht.

Was ich aber übersehen hatte:
Der Schatten kann bei dieser Konstruktion nicht lückenlos sein, da der Schatten der rechten Frontplatte nicht die ganze Wölbung abdunkelt. Der Unterbruch des Schattens in der Mitte ist folglich normal.
Was aber nicht normal sein kann, ist das fehlende Schattenstück auf dem ersten Polygon der Wölbung.

Bild

Ein weiteres Bild zur Veranschaulichung
Bild
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Antworten