learn GLSL from zero
ToolsCrea con shadersShader MakerCrea shaders gratis en líneaToolkitObras de shaders listas para tu webSketcher LabPinta el hero de tu landing con shaders3D StudioEl editor Three.js en tu navegador
GamesJuega con shadersOnomatoShaderEscribe una palabra y explótalaThe WatcherUn ojo que te sigueAetherVidrio líquido con un ojo adentroBloomcoreUna palabra hace crecer un jardín de luzPyrokineAvienta fuego a la paredVoltaicLa pirámide lanza rayosSurfSurfea un océano de shader

Lección 3 de 10 · Domain warping

Cow

Holstein en blanco y negro. Gráfico, brutal.

La vaca es la giraffe con dos cambios: frecuencia más baja (manchas grandes) y threshold más alto (menos manchas, más blanco).

Pangea en blanco y negro.

FrecuenciaEl multiplicador de p controla el tamaño. Menor = manchas grandes. Mayor = textura fina.
PruebaBaja el 2.5 a 1.5 para manchas enormes, o súbelo a 5.0 para dálmata. Cambia el 0.8 (warp) a 0.2 para manchas más limpias o a 2.0 para deformación caótica.

El código

void main(){
  vec2 p = gl_FragCoord.xy / R * 2.5;
  float warp = fb(p);
  float f = fb(p + warp * 0.8);
  float mask = smoothstep(0.54, 0.57, f);
  float skin = n2(p * 25.0) * 0.05;
  float pore = n2(p * 50.0) * 0.02;
  vec3 white = vec3(0.98, 0.97, 0.95);
  vec3 black = vec3(0.015, 0.015, 0.02);
  vec3 col = mix(white, black, mask);
  col += (skin + pore) * (1.0 - mask);
  float edge = smoothstep(0.52,0.54,f) * (1.0-smoothstep(0.57,0.59,f));
  col -= vec3(0.12) * edge;
  col *= 0.88 + 0.12 * (1.0 - mask);
  gl_FragColor = vec4(col, 1.0);
}
close