[Projekt] Eisschnee Shader

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: [Projekt] Eisschnee Shader

Beitrag von Alexander Kornrumpf »

Ich denke was am meisten stört ist dass der funkelnde Bereich im Schatten liegt. Wie soll das gehen?
Benutzeravatar
Zudomon
Establishment
Beiträge: 2295
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Zudomon »

Chromanoid hat geschrieben:
Zudomon hat geschrieben:Jetzt ärgert es mich doch etwas, dass das Gefunkel nur im Vordergrund ist... aber ich werde mich wohl noch gedulden müssen. :roll:
Hau doch einfach noch den Glitter-Shader aus Rendermonkey drüber - hast du das mal probiert? Die Logik lässt sich bestimmt gut in deinen Shader einbauen...
Hier ein screen von dem Teil:
glitter.png
Vorerst wollte ich keine Zeit mehr investieren... aber vom Prinzip her bräuchte ich nur das MipMapLODBias für bestimmte Texturen ändern... das könnte ich sogar im Effekt... aber da ich hier nur ein Pixelshader und keinen habe, muss ich abwarten.
Alexander Kornrumpf hat geschrieben:Ich denke was am meisten stört ist dass der funkelnde Bereich im Schatten liegt. Wie soll das gehen?
Hmmmm... garnicht leicht zu beantworten... möglich wäre es nämlich schon. Man muss sich erstmal überlegen, um was für einen Effekt es sich handelt. Ohne zu weit auszuholen und auch nur soweit, wie es mein halbwissen über Physik zulässt, es handelt sich ja um Eiskristalle. Da diese das Licht in verschiedene Richtung brechen könnte man das ganze am ehesten mit einer Specularreflektion vergleichen. Und wenn mich nun nicht alles täuscht, dann kann man Specularreflektionen auch im Schatten haben, da es sich ja um eine Reflektion handelt. Sicher bin ich mir aber irgendwie nicht. Hat man dafür nicht dann auch einen "Reflektionsschatten" an anderer Stelle?
Wie auch immer, also bei wird das Licht, was im Shader ist noch einfach dazu multipliziert. Also glitzert es in dunklen ecken schwächer.
Benutzeravatar
Krishty
Establishment
Beiträge: 8413
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Krishty »

Selbstverständlich glitzert Schnee auch im Schatten – wenn nicht die Sonne drauf strahlt, dann strahlt Himmelslicht drauf oder der Glanz umliegender Schneekristalle, die noch in der Sonne liegen. Schneeglanz könnte anisotroper nicht sein (selbst, wenn man ihn von allen Seiten gleichmäßig beleuchtet, glitzert er); darum ist es auch schwer, zu sagen, wo der Glanz herkommt. Glanzlos ist Schnee nur in völliger Dunkelheit. Gerade dadurch, dass er im Schatten nicht schlagartig so dunkel wird wie andere Oberflächen, sehen wir ihn als besonders weiß und besonders rein an.

Spekuläres Licht (jedenfalls die Phänomene, die mit dem Modell des spekulären Lichts erklärt werden) gibt es im Schatten auch, aber bei weitem schwächer – weil Objekte, denen wir spekuläres Licht zuschreiben, oft viel gleichmäßigere Oberflächen und viel geringere Albedo haben, als dass seitlich eingestreutes Licht merklich stark in unser Auge reflektiert würde.
Zuletzt geändert von Krishty am 11.08.2010, 14:13, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Zudomon
Establishment
Beiträge: 2295
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Zudomon »

Ich Trottel!! :lol:

Man konnte in dem Editor damals doch das MipMapLODBias pro Textur umstellen, naja, damit hab ich jetzt auch geglitzer in beliebiger Entfernung. Aber ich muss sagen, dass gefällt mir so nicht mehr. Das erinnert dann doch eher an gewollt und nicht gekonnt.
20100811.jpg
Falls ihr anderer Meinung seit, und euch das so doch realistischer vorkommt, dann lasst es mich wissen. Wenn euch sonst noch was einfällt, wie man das ganze ansprechender machen könnte, lasst es mich auch wissen. ;)
Benutzeravatar
Zudomon
Establishment
Beiträge: 2295
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Zudomon »

So... und nochmal... nun wird der Effekt einfach nochmal ein wenig ausgeblendet. Nun bin ich zufrieden mit dem Ergebnis. :D
20100811b.jpg
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4318
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Eisschnee Shader

Beitrag von Chromanoid »

video pls :) evt. könntest du die glanzstärke ja noch abhängig von der belichtung machen...
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: [Projekt] Eisschnee Shader

Beitrag von Alexander Kornrumpf »

Es stört mich immer noch dass das Glitzern Im am stärksten ausgeleuchteten Bereich (oben rechts) am wenigsten zu sehen ist. Schnee unter voller Sonneneinstrahlung reflektiert extrem viel Licht, wie jeder weiß der seine Skibrille mal im Hotel vergessen hat. Und das kommt hier irgendwie nicht rüber.

Das zweite Bild sieht vielleicht auch vor allem deshalb besser aus weil es keine helle Fläche gibt.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2295
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Zudomon »

Chromanoid hat geschrieben:video pls :) evt. könntest du die glanzstärke ja noch abhängig von der belichtung machen...
Mach ich hinterher nochmal. Die Belichtung beeinflust ja schon die Glanzstärke. Allerdings sieht das auf hellem Schnee eh alles nicht so gut aus, deswegen mache ich auch die Screens immer im dunkleren Bereich. :D
Alexander Kornrumpf hat geschrieben:Es stört mich immer noch dass das Glitzern Im am stärksten ausgeleuchteten Bereich (oben rechts) am wenigsten zu sehen ist. Schnee unter voller Sonneneinstrahlung reflektiert extrem viel Licht, wie jeder weiß der seine Skibrille mal im Hotel vergessen hat. Und das kommt hier irgendwie nicht rüber.

Das zweite Bild sieht vielleicht auch vor allem deshalb besser aus weil es keine helle Fläche gibt.
Am besten wäre, wenn du entsprechende Beispielfotos findest, die explizit zeigen, was du meinst bzw. wie es dann aussehen muss. Dann könnte ich mich daran orientieren.
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: [Projekt] Eisschnee Shader

Beitrag von Alexander Kornrumpf »

jetzt nach weniger als einer minute google, ich bin sicher es gibt bessere Bilder davon

Bild

Es ist in der mitte so hell, dass die Textur (in der ursprünglichen Bedeutung des Wortes) des Schnees völlig verschwindet und nur noch eine weiße Fläche zu sehen ist. Rechts und links davon sieht es am ehesten so aus wie in deinem Shader, aber davor im Schatten seh ich keinerlei Glitzern. (Wobei ich nicht bestreiten will dass dort eins sein könnte, ihr seid die Experten.)
Benutzeravatar
Krishty
Establishment
Beiträge: 8413
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Krishty »

Im dunkeln glitzert er tatsächlich nicht … hmmm. Dann hatte ich wohl irgendwas total falsch in Erinnerung, sry.

Eigentlich ein perfektes Einsatzgebiet für HDR-Rendering :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: [Projekt] Eisschnee Shader

Beitrag von Alexander Kornrumpf »

Ja dein Bild zeigt alles was wir wissen wollten auf einmal, super.

Es zeigt auch dass er auf "mittelhellen" Flächen echt nah dran ist (was ein Lob sein soll). Aber auf dunklen und sehr hellen könnte noch etwas Schliff angelegt werden.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: [Projekt] Eisschnee Shader

Beitrag von eXile »

Krishty hat geschrieben:Im dunkeln glitzert er tatsächlich nicht … hmmm. Dann hatte ich wohl irgendwas total falsch in Erinnerung, sry.
Er glitzert schon noch, nur überhaupt nicht mehr so stark, als wenn er direkt durch eine Lichtquelle (Sonne) beleuchtet wird. Der Glitzereffekt kommt ja nur dadurch zu stande, dass die Hemisphäre um den betrachteten Punkt hochfrequente Änderungen der Strahldichte aufweist, und darum ein kleiner Wechsel des View-Vektors eine große Änderung der vom Schneepartikel reflektierten Strahlleistung in Richtung des View-Vektors bewirken kann.

Liegt der betrachtete Punkt im Schnee im Schatten, so weist die den Punkt umgebene Hemisphere nur relativ niedrigfrequente Änderungen der Strahldichte auf, und die gesamte Bestrahlungsstärke auf diesen Punkt ist natürlich wesentlich geringer. Damit ist einerseits die relektierte Strahldichte auch geringer (der Punkt im Schnee ist also dunkler, wenn er im Schatten liegt - Überraschung!). Andererseits bewirkt eine Änderung des View-Vektors zwar durchaus eine Änderung der reflektierten Strahlleistung in Richtung des View-Vektors, aber die reflektierte Strahlleistung bleibt in jedem Fall geringer als im direkt beleuchteten Falle, und die Änderung der Strahlleistung ist kaum bemerkbar.

Kurz: Natürlich glitzern Schneepartikel auch, wenn es etwas dunkler ist, aber der Effekt ist nicht sichtbar. Würden die Schneepartikel plötzlich nicht mehr glitzern, nur weil es etwas dunkler ist, hätten sich ja die physikalischen Eigenschaften des Partikels wie von Zauberhand verändern müssen, was nicht sein kann :lol:
Benutzeravatar
Krishty
Establishment
Beiträge: 8413
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Krishty »

Ganz genau. Ich hatte fälschlicherweise in Erinnerung, dass sich nicht die Hemisphäre hochfrequent ändern muss, sondern die Reflexionsfläche des Partikels.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Unknown GER
Beiträge: 49
Registriert: 09.01.2003, 13:04

Re: [Projekt] Eisschnee Shader

Beitrag von Unknown GER »

Schnee besteht aus Eiskristallen von denen nicht wenige kleine Plättchen sind. Die Plättchen, bei denen der Einfallwinkel des Lichts gleich dem Ausfallwinkel zum Beobachter ist, sind genau die Glanzpunkte. Diese sind in der Wahrnehmung (fast) so hell wie die Lichtquelle. Diese darf aber erst am Schneepartikel das erste mal gestreut/reflektiert werden, nur das direkte Licht ist i.A. stark genug, so dass sich der Partikel von anderen in seiner Umgebung abheben kann, die nur ein/mehrfach gestreutes Licht abbekommen. Hier mal ne Langzeitaufnahme von Schnee bei Nacht:

Bild

edit: Und hier sehr schön zu sehen für den Menschen kaum ein Unterschied von links zu rechts in der Helligkeit. Links kommt aber keine direkte Sonneneinstrahlung an.

Bild

edit2: Wie entscheidest du wo der Schnee als erstes taut? Steigung, lokale Umgebung oder sogar eine kleine Hitzetransfersimulation? Gibt ein schönes Paper dazu: Heat Transfer Simulation for Modeling Realistic Winter Sceneries.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2295
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Eisschnee Shader

Beitrag von Zudomon »

Sehr coole Bilder... die geben eine menge Inspiration! Danke dafür!
Und euren Worten zu lauschen und neue physikalische Erkenntnisse sammeln finde ich auch sehr interessant. :)
Mein Problem ist bei allem immer, ich kann mit Formeln usw. kaum was anfangen. Für mich ist es besser, wenn es mit verständlichen Worten erklärt wird, oder noch besser, wenn es dafür Animationsfilme oder sowas gibt, die den Vorgang visuel darstellen.
Fasst all meine Effekte basieren auf Try'n'Error...

Das Tauen ist über die Steigung geregelt. Mir ist bei sowas eigentlich immer wichtig, dass es mit den einfachsten Mitteln den größten Effekt hat. Eine Hitzesimulation wäre in der Tat sehr interessant, aber vorerst nicht wichtig. Wenn man irgendwann mal einbaut, dass bei genügend Hitze Materialien auch Feuer fangen können, dann wäre das natürlich extrem geil. :D
Unknown GER
Beiträge: 49
Registriert: 09.01.2003, 13:04

Re: [Projekt] Eisschnee Shader

Beitrag von Unknown GER »

Wollte vor einem halben Jahr meine Abschlussarbeit erst über das Thema schreiben. Entsprechend hab ich hier zig Bilder vom Schnee diesen Winter unter allen möglichen Bedingungen. Da ich aber nur 384 kbit/s hier im Kaff habe, kann ich leider nicht viel mehr davon hochladen in großen Auflösungen, ohne dass es den ganzen Tag dauern würde. :D
Antworten