caskal Posted December 13, 2017 Share Posted December 13, 2017 (edited) Hey guys, it is possible to mirror noise within vops? Im trying to create some sort of fractal noise, for example on a grid of 4, having the same noise on each grid but flipped / mirrored. Thanks! Edited December 14, 2017 by caskal Quote Link to comment Share on other sites More sharing options...
f1480187 Posted December 13, 2017 Share Posted December 13, 2017 Something like this: mirror_noise.hipnc 3 Quote Link to comment Share on other sites More sharing options...
caskal Posted December 13, 2017 Author Share Posted December 13, 2017 @f1480187 I was expecting your answer (not that fast tho), thats exactly what I had in mind, thanks a lot for the file. Can you briefly explain the process on vops? I kinda understand it by reading the wrangle but still a little confused Also, is it possible to make this in other shapes like spheres? I tried and works on front/back but deforms on top/bottom, just curious about this, I'll use the cam on front anyways Thanks again! Quote Link to comment Share on other sites More sharing options...
snoot Posted December 13, 2017 Share Posted December 13, 2017 A useful way to think of it is that if you have a function(noise) and you put the same input into that function, then you will get the output. So if you manipulate the position to repeat the same input, you will get the same result. In f1480187 example, a point's position (-1,-1,0) gets remapped to (1,1,0)... so it will produces the same noise result as the point that has the original pos (1,1,0). Effectively a mirroring. 2 Quote Link to comment Share on other sites More sharing options...
f1480187 Posted December 13, 2017 Share Posted December 13, 2017 The noise output also need to be mirrored, therefore additional mirroring step is required. To compute everything in different object space (for /obj/cam1, for example), wrap the code (vops) into couple of ptransforms. mirror_noise_camera_space.hipnc 1 1 Quote Link to comment Share on other sites More sharing options...
konstantin magnus Posted December 14, 2017 Share Posted December 14, 2017 Just set the position coordinates to abs() before you feed them into noise. mirror_noise_odforce.hipnc 1 Quote Link to comment Share on other sites More sharing options...
Parboil Posted December 14, 2017 Share Posted December 14, 2017 You can also create a triangle wave using modulus to determine the tiling frequency on the mirrored noise. Just had a quick go with a wrangle ... float repeat_frequ = 2; vector mirror_pos = abs(abs(@P)%(repeat_frequ*2) - repeat_frequ); mirror_pos[1] += chf("offset"); @P.y += snoise(mirror_pos, chi("turb"), chf("rough"), chf("atten")); 1 Quote Link to comment Share on other sites More sharing options...
caskal Posted December 14, 2017 Author Share Posted December 14, 2017 Damn this is awesome! houdini has no limits, thanks a lot guys! @f1480187 @snoot @konstantin magnus @parboil I'll upload the animation when its done Thanks again! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.