Reflektionen (Nässe)

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Reflektionen (Nässe)

Beitrag von dot »

Blinn-Phong basiert auf Microfacets. "Blinn-Phong ohne Microfacets" gibt's nicht, denn Microfacets ist, wie man Blinn-Phong herleitet… ;)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Reflektionen (Nässe)

Beitrag von Krishty »

… wie ist denn die Herleitung? Wikipedia sagt nur, dass Blinn-Phong auf Phong basiert, und dies sei wiederum „empirisch“. Ich bin jetzt ehrlich gesagt auch verblüfft, dass der olle „schmeiß ein pow() drüber, damit’s glänzender aussieht“-Trick aus den 70ern physikalisch basiert sein soll; schon allein, weil das mit der Energieerhaltung vorn und hinten nicht stimmen kann …

Edit: Hab’s! Ich musste nur lange genug suchen:
https://en.wikipedia.org/wiki/Specular_highlight#Phong_distribution hat geschrieben:These equations imply that the distribution of microfacet normals is an approximately Gaussian distribution (for large {\displaystyle n} n), or approximately Pearson type II distribution, of the corresponding angle.
Alles klar, dann habt ihr recht! Ich dachte bisher wirklich, es sei halt einfach nur geraten, weil’s gut aussieht.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Reflektionen (Nässe)

Beitrag von Jonathan »

Eigentlich ist fast alles irgendwie ein Microfacettenmodell. Diffuse Reflexion entsteht zum Beispiel, weil das Material Strukturen im Wellenlängenbereich aufweist und eben nicht vollkommen glatt ist. Man kann vielleicht noch sagen, dass statt Effekten wie Verdeckung und Änderung der Oberflächennormale im Falle der diffusen Reflexion die Welleneffekte die entstehen, wenn Teilwellen an leicht unterschiedlichen Stellen reflektiert werden und sich dann überlagern, angenähert werden, aber eigentlich macht das keinen wirklichen Unterschied. Die BRDF beschreibt in beiden Fällen den 'Durchschnittswert' vieler kleiner Lichtinteraktionen, damit man diese nicht selber berücksichtigen muss.

Man kann sich jetzt vielleicht noch streiten, was 'physikalisch basiert' bedeutet. Man muss ja die Entstehung diffuser Reflexion nicht unbedingt verstanden haben, um durch Beobachtung auf ungefähr die richtige Formel zu kommen. Man kann BRDF's ja auch komplett datengetrieben implementieren und das Material einfach aus tausenden Richtungen bei unterschiedlichem Licht messen, dann hat man weder eine physikalische Theorie wie der Effekt entsteht, noch eine vernünftige Formel. Realistisch sieht es trotzdem aus.
(Man kann natürlich auch sagen, dass physikalisch basiert bedeutet, man hätte sich Gedanken über die Entstehung gemacht und eine Formel hergeleitet und diese validiert, und kommt damit auf ein Ergebnis was ziemlich sicher ziemlich richtig ist und wäre durch stures Rumprobieren nie auf ebendiese Formel gekommen. Das ist gut und wichtig und ich bin natürlich immer dafür, das man auch versteht, was man da eigentlich macht, aber letztendlich ist halt realistisch das, was aussieht wie die Realität, egal wie man auf das Ergebnis bekommen ist).
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Reflektionen (Nässe)

Beitrag von xq »

Krishty hat geschrieben: Edit: Hab’s! Ich musste nur lange genug suchen:
https://en.wikipedia.org/wiki/Specular_highlight#Phong_distribution hat geschrieben:These equations imply that the distribution of microfacet normals is an approximately Gaussian distribution (for large {\displaystyle n} n), or approximately Pearson type II distribution, of the corresponding angle.
Alles klar, dann habt ihr recht! Ich dachte bisher wirklich, es sei halt einfach nur geraten, weil’s gut aussieht.
Ich glaube ja, das "es sei halt einfach nur geraten, weil’s gut aussieht." stimmt und man hat das Mikrofasettenzeug danach zurückinterpretiert, damit man nicht da stand mit "ja sorry, sah halt geil aus und war einfach zu implementieren"
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Reflektionen (Nässe)

Beitrag von joeydee »

Nö, ganz sicher nicht geraten. Physik, Optik usw. wurde ja schon lange vor der Computergrafik gut untersucht. Energietransport ist eigentlich gut verstanden, makro- wie mikroskopisch, bis in Bereiche wie Beugung, Interferenz oder gar subatomar bis in die Quantenbereiche.

Bei Spherical Harmonics oder Subsurface-Scattering ist man ja auch nicht zufällig auf einen coolen künstlerisch erstellten CG-Effekt gestoßen und hat dann versucht, damit die Realität nachträglich zu erklären.
Vielmehr wird bei solchen Entwicklungen eine schnelle Näherung für bekannte und gut verstandene Phänomene gesucht. Und die Qualität wird nicht optisch anhand von ein paar Renderings beurteilt, sondern anhand des "Recovery-Errors" unter sämtlichen Bedingungen im Vergleich zur exakten Simulation/Beobachtung.

Fällt dieser Vergleich schlecht aus oder ganz weg, ist es nicht "physically based". Bei Phong z.B. kann man per Parameter den Energieerhaltungsatz verletzen, das Modell ist also nur "aesthetically based", sozusagen ein künstlerischer Airbrush-Glanzpunkt im Bild nach individuellem Geschmack.
Antworten