           a=e;
         }
       }
-      N = normalize(vec3(f(n.xyz + march_params.xyy).x, f(n.xyz + march_params.yxy).x, f(n.xyz + march_params.yyx).x) - c.x);
+      N = normalize(vec3(sdf(n.xyz + march_params.xyy).x, sdf(n.xyz + march_params.yxy).x, sdf(n.xyz + march_params.yyx).x) - c.x);
       break;
     }
     p=n;

  {
    d=normalize(d+reflect(-d,normalize(p-r))*.2);
    destruction = -0.2;
    w=!w;
  }

  // World chosen affects iteration parameters.
  if(w)
  {
    march_params = vec4(0.05, 0.0, 0.98, 0.022);
  }

float T(vec3 p, vec3 d, float I, out vec3 P, out vec3 N)
{
  vec3 n,r;
  float a = sdf(p);
  float c;
  float e;
  float i = 1.0;

  for(;i>.0;i-=I)
  {
    n = p + d * max(a * march_params.z, 0.02);
    c = sdf(n);
    if(.0>c)
    {
      for(int j=0;j<5;++j)
      {
        r=(p+n)*.5;
        e = sdf(r);
        if(.0>e)
        {
          n=r;
