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 7 de 10 · Atractores extraños en la GPU

Proyección 3D

Rotar y aplanar el espacio a la pantalla.

Las partículas viven en 3D, pero la pantalla es plana. Las rotamos despacio y las proyectamos: dividir entre la profundidad hace que lo lejano se vea chico.

El atractor flota y gira; verlo desde todos los ángulos revela su geometría.

p.xy / (p.z + k)Proyección en perspectiva: entre más lejos, más chico. El uRot lo hace girar.
PruebaMueve Estira y Infla aquí abajo: editan d y a de la ecuación. La forma se reconfigura al instante.

El código

vec3 attractor(vec3 p){
  // Aizawa · mueve los números y mira
  float a=0.95, b=0.70, c=0.60, d=3.50, e=0.25, f=0.10;
  float dx = (p.z - b)*p.x - d*p.y;
  float dy = d*p.x + (p.z - b)*p.y;
  float dz = c + a*p.z - p.z*p.z*p.z/3.0
           - (p.x*p.x + p.y*p.y)*(1.0 + e*p.z) + f*p.z*p.x*p.x*p.x;
  return vec3(dx, dy, dz);
}
close