{ Wood grain texture: A1 = roughness (0 < roughness < 1). } xgrain_dx = 0; { dx along x axis } xgrain_dy = A1 * Rdot * sin(wztexang); { dy along x axis } xgrain_dz = A1 * Rdot * cos(wztexang); { dz along x axis } wxtexang = PI * fnoise3(Px/10, Py, Pz); ygrain_dx = A1 * Rdot * cos(wztexang); { dx along y axis } ygrain_dy = 0; { dy along y axis } ygrain_dz = A1 * Rdot * sin(wztexang); { dz along y axis } wytexang = PI * fnoise3(Px, Py/10, Pz); zgrain_dx = A1 * Rdot * cos(wztexang); { dx along z axis } zgrain_dy = A1 * Rdot * sin(wztexang); { dy along z axis } zgrain_dz = 0; { dz along z axis } wztexang = PI * fnoise3(Px, Py, Pz/10);