displacement tilebump( float frequency = 100 ) { float smod = mod( s * frequency, 1 ); float tmod = mod( t * frequency, 1 ); float mag; if( smod < 0.1 || tmod < 0.1 ) { // grout mag = 0; } else { if( tmod < 0.2 ) { mag = 500*pow( tmod-0.1, 3 ) - } else if( smod < 0.2 ) { mag = 500*( } else if( tmod > 0.9 || tmod > 0.9 ) { } mag = sin( smod ); } P += normalize( N ) * mag; N = calculatenormal( P ); }