Jump to content
Sign in to follow this  
Activate

Tileable Noise

Recommended Posts

@rohandalvi was asking on Twitter about tiling noise in Houdini. It seemed like this should be easy to do. That should have been a warning sign.  Doing this right is much harder but here is a super quick blur based noise tiler:

Tiling-2.thumb.gif.208fd971b4960f93c44b82257abe57ca.gif

Since blurring is feature agnostic, it does not make for the best tiles but may be good enough for some cases.

Hip file attached.

noise_tile.hiplc

Share this post


Link to post
Share on other sites

Check out the liked thread. I think the aproach is much more elaborate. As i'm understanding it the idea is to bend the noises sampling position in a way that the start and the endpoint are meeting each other.

 

Share this post


Link to post
Share on other sites

That makes a lot of sense. Here is the same thing but converting one dimension to polar coordinates. It makes for a much better result.

 

polar-noise-tile.thumb.JPG.ba8410207dbebcf22c0440546638ea48.JPG

 

The tiled result looks nicer as well.

result-noise-tile.thumb.JPG.d2e553f4bcd7769c23b31057accfcae6.JPG

noise_tile_v2.hiplc

Share this post


Link to post
Share on other sites

Hi Niels,

I tried the torus route as suggested on twitter:

torus_noise.png.e5b76a79365cddb6f222b9956255c970.png

float r_torus = chf('radius_torus');
float r_tube = chf('radius_tube');
float freq = chf('frequency');

v@pos_rest = v@P;
vector bbox = relbbox(0, v@P) * M_TWO_PI;

v@P.x = (r_torus + r_tube * cos(bbox.x)) * cos(bbox.z);
v@P.y = (r_torus + r_tube * cos(bbox.x)) * sin(bbox.z);
v@P.z = r_tube * sin(bbox.x);

v@Cd = noise(v@P * vector(freq));
v@P = v@pos_rest;

 

seamless_noise.hip

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×