Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Negor en 28 de Noviembre de 2011, 06:02:11 PM

Título: Glow shader
Publicado por: Negor en 28 de Noviembre de 2011, 06:02:11 PM
Hola

Estoy trabajando en este shader pero tengo un problema al combinar el blur con la escena final.

(http://img17.imageshack.us/img17/710/glowsj.th.png) (http://imageshack.us/photo/my-images/17/glowsj.png/)

Este es el resultado final donde e marcado con circulos rojos se puede ver como el glow es menos intenso cuando tiene un color negro de fondo, e probado con varias formas de combinarlo pero todas tienen el mismo problema, lo q quiero es q el glow sea igual de intenso independientemente de lo q alla al fondo.

Saludos
Título: Re: Glow shader
Publicado por: Gallo en 28 de Noviembre de 2011, 06:12:38 PM
Cual es la formulita que estas utilizando para calcular el color del pixel? puedes pegarla aquí?
Título: Re: Glow shader
Publicado por: Negor en 28 de Noviembre de 2011, 07:25:19 PM
E probado muchas maneras distintas pero con todas tengo el mismo problema.


float CalcLuminance(float4 color)
{
   return max(dot(color, float3(0.299f, 0.587f, 0.114f)), 0.0001f);
}

float4 frag(VOut I) : COLOR0
{
float4 blur = tex2D(BlurTex, I.uv);
float4 c = tex2D(SceneTex, I.uv);

c *=baseIntensityA * CalcLuminance(c*baseIntensityB);

c *= (1 - saturate(blur));
return c+blur;
}


Tambien e probado sumando solo c+blur y nada.

Edit: baseIntensityA  y baseIntensityB son solo floats para controlar el color
Título: Re: Glow shader
Publicado por: XÑA en 29 de Noviembre de 2011, 11:27:47 AM
¿y porqué no sumas y ya está? Así es como yo  lo hacía, con additive.
Título: Re: Glow shader
Publicado por: Gallo en 29 de Noviembre de 2011, 12:06:24 PM
claro, esque si multiplicas por negro.... es negro si o si, lo que tienes es que multiplicar por su alpha el blur y  1- alpha la escena y sumarlos o simplemente sumarlos a ver como queda.
Título: Re: Glow shader
Publicado por: Negor en 29 de Noviembre de 2011, 03:02:31 PM
Es lo primero q hice simplemente sumar y tenia el mismo problema por eso me puse a probar otras formas y es raro por q si un pixel en este caso verde de 0.2 se suma a un color negro el resultado deberia ser 0.2 asi q no se q pasa.

(http://img838.imageshack.us/img838/3571/78110852.th.png) (http://imageshack.us/photo/my-images/838/78110852.png/)


Esta imagen la e echo con un blur*5 para q se aprecie bien la diferencia con el fondo blanco y el negro.

(http://img811.imageshack.us/img811/6786/92946146.th.png) (http://imageshack.us/photo/my-images/811/92946146.png/)
Título: Re: Glow shader
Publicado por: tamat en 29 de Noviembre de 2011, 04:17:12 PM
puedes mostrar tambien la textura de blur a secas? tal vez tu blur no está funcionando bien, por otra parte tienes un radio muy bajo.
Título: Re: Glow shader
Publicado por: Negor en 29 de Noviembre de 2011, 05:00:41 PM
Este es todo el proceso q hago

1º la escena original
(http://img716.imageshack.us/img716/1068/53270148.th.png) (http://imageshack.us/photo/my-images/716/53270148.png/)

2º la escena solo con los glowmap, lo e dividido en 2 imagenes pero se hacen en el mismo shader para q no alla confusiones.
(http://img853.imageshack.us/img853/3336/79408524.th.png) (http://imageshack.us/photo/my-images/853/79408524.png/)(http://img819.imageshack.us/img819/3447/15058029.th.png) (http://imageshack.us/photo/my-images/819/15058029.png/)

3º Blur
(http://img196.imageshack.us/img196/1823/85326152.th.png) (http://imageshack.us/photo/my-images/196/85326152.png/)

Gracias
Título: Re: Glow shader
Publicado por: Negor en 29 de Noviembre de 2011, 08:36:43 PM
Bueno e cambiado totalmente el shader del blur, aunque no me gusta por q lo e copiado me gusta hacer las cosas por mi mismo, pero el caso es q a mejorado bastante la imagen final.

(http://img822.imageshack.us/img822/6339/59864917.th.png) (http://imageshack.us/photo/my-images/822/59864917.png/)

Tambien e cambiado la forma de combinarlo.

return c+blur*(1-CalcLuminance(blur)+1);

Asi las zonas de blur oscuras se hacen un poco mas luminosas y las muy brillantes algo mas oscuras.

Aun se ve algo mas de blur con el fondo blanco pero supongo q ya esta algo mas aproximado a como debe ser.