Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Mi primer shader, chispas

Iniciado por marcode, 30 de Agosto de 2006, 12:35:54 AM

« anterior - próximo »

marcode

Una vez solventado el problema de la inserción de shaders en mi terreno, me ha dao el ansia por hacer el efecto de niebla.

Pero antes de hacerle un copy&paste a Ralp o leerme su libro de scattering he preferido intentarlo a partir de los shader de niebla básicos, y este es el resultado:

Me "he ido" a los picos de Urbión para ver mejor el efecto.



Éste es el fragment shader


uniform sampler2D tex;

void main()
{

  // calcular la luminosidad de la niebla
float fogLum = 1.0-exp(0.00003 * gl_FogFragCoord);
fogLum = clamp(fogLum, 0.4, 0.6);

  // calcular el color a partir de la luminosidad
vec4 fogColor = vec4( fogLum, fogLum*1.3, fogLum*1.6, 0.0 );

  // calcular la densidad
float fog = exp(0.0002 * (gl_FogFragCoord));
fog = clamp(fog, 0.1, 1.0);
 
  // mezclar los valores de color de niebla, color de pixel y densidad
gl_FragColor = mix( fogColor, gl_Color, fog );

  // y esto si no lo pongo no sale la niebla aunque no use texturas
texture2D(tex, gl_TexCoord[0].st);
}


Tendré que aprender más para mejorarlo pero de momento no queda mal, es el efecto que quería que clarea a mayor distancia y hace que se aprecie el perfil de las montañas.

Por cierto, la última línea me toca las narices.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

Pablo Zurita

Tenes el sampler tex que no lo usas. Saca la definición del sampler y saca esa línea al final de tu shader.

JL10

Es impresionante el efecto. Por favor nos vas comentando los progresos que hagas con muestras de código. Gracias. Creo que me voy a animar con los shaders.  :)
Gracias

marcode

Cita de: "Pablo Zurita"Tenes el sampler tex que no lo usas. Saca la definición del sampler y saca esa línea al final de tu shader.
Lo hice y lo mismo, lo curioso es que cuando lo quito sale bien todo pero la niebla desaparece, me pasa cada cosa...


He sacado unas capturas para comparar la niebla típica y la del shader, la diferencia es evidente, he puesto también como se ve sin niebla (horrible).

size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.