Reflektionen (Nässe)

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.

Re: Reflektionen (Nässe)

Beitragvon dot » 24.07.2018, 21:45

Blinn-Phong basiert auf Microfacets. "Blinn-Phong ohne Microfacets" gibt's nicht, denn Microfacets ist, wie man Blinn-Phong herleitet… ;)
Benutzeravatar
dot
Michael Kenzel
Establishment
 
Beiträge: 1649
Registriert: 06.03.2004, 19:10

Re: Reflektionen (Nässe)

Beitragvon Krishty » 24.07.2018, 23:04

… 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
Krishty
Establishment
 
Beiträge: 6672
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Reflektionen (Nässe)

Beitragvon Jonathan » 25.07.2018, 23:05

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!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1221
Registriert: 04.08.2004, 20:06

Re: Reflektionen (Nässe)

Beitragvon MasterQ32 » 25.07.2018, 23:26

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"
Wer checkt diese Shaderprogrammierung denn?
JCL: Kein Mensch zwingt Sie jedoch, mit Shadern oder ueberhaupt mit Gamestudio zu arbeiten. Es gibt schliesslich auch andere schoene Hobbies, wie zum Beispiel das Sammeln von Bierdeckeln – JCL quotes
Benutzeravatar
MasterQ32
Felix Queißner
Establishment
 
Beiträge: 1202
Registriert: 07.10.2012, 14:56

Re: Reflektionen (Nässe)

Beitragvon joeydee » 26.07.2018, 21:29

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.
joeydee
Establishment
 
Beiträge: 627
Registriert: 23.04.2003, 15:29

Vorherige

Zurück zu Grafikprogrammierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste