Anamorphic Lens Flare
-
Hey Leute wollte mal Fragen wie man ein Anamorphic Lens flare shader erstellen würde. Ich dachte jetzt an Verdunkelung der Szene damit nur die hellsten Stellen bzw. die specularflächen hell sind.Danach würde man ja ein horizontalen Blur drauftun, jedoch bin ich mir nicht sicher was bei dem vertikalen passieren soll, da der flare selbst ja vom mittelpunkt aus immer schmaler werden.
Wäre cool wenn mir das jemand erklären könnte oder evtl auch ein wenig Code als Beispiel geben könnte ( egal ob HLSL oder GLSL )
Danke
-
Dachte da an sowas : http://docs.unity3d.com/Documentation/Components/script-BloomAndLensFlares.html
genauso sieht es ja bei der CryEngine aus
-
Ich kann dir zwar nicht direkt helfen, aber dich mal auf diese 2 Threads verweisen.
http://www.gamedev.net/topic/612546-anamorphic-lens-flare/
http://www.gamedev.net/topic/560478-lens-diffractionanamorphic-lens-flares/
-
Ja das kenn ich schon Ich habe nur ein Problem mit dem Blur.
Sagen wir ich habe ein Bild was schwarz ist und einen weißen punkt hat, was z.B das licht darstellen soll.Jetzt ist es ja nicht getan das ganze einfach nur horizontal zu bluren, sondern so ein flare hat ja eine Form, z.B dass der vertikal immer schmaler wird zu den Enden.Ich weiß jetzt ebeb nicht wie ich das von shader hinkriege.Ich habe jetzt folgenden vertikalen Blur, jedoch weiß ich jetzt nicht wie ich das so hinkreiege:
#define samples 35.0 #define samplesi 35 uniform sampler2D texture0; uniform vec2 buffersize; void main( void ) { vec2 ps = 1.0 / buffersize; vec4 color; vec2 coord; for ( int i = 0; i < samplesi; i++ ) { coord.x=gl_FragCoord.x/buffersize.x-ps.x*samples*0.5+i*ps.x; coord.y=gl_FragCoord.y/buffersize.y; vec4 bloom = texture2D(texture0,coord); bloom *= bloom.w; color += bloom; } gl_FragColor = color/samples; }
Hier wird ja die texturcoordinate X mit den Durchläufen geändert