u = u / tp->xtiles + data->xoffs;
v = v / tp->ytiles + data->yoffs;
float sn = gph::fbm(u * tp->noise_freq, v * tp->noise_freq, tp->num_octaves);
u = u / tp->xtiles + data->xoffs;
v = v / tp->ytiles + data->yoffs;
float sn = gph::fbm(u * tp->noise_freq, v * tp->noise_freq, tp->num_octaves);