Basically i made this to use this as a material for a game but i don't really understand how i can make it seamless when i will inevitably have to stretch it out to cover a whole ocean. Any help will be appreciated.
Here's the blend file 
- 41
- 2
-
You can watch the blender guru infinite render tutorial , He explain how you can take any texture and use the Uber Mapping node to get a seamless texture. – SHikha Mittal Sep 21 '20 at 09:28
-
I'm uncertain how to save a seamless selection from a procedural texture in blender - I usually have to use something like Substance Designer for that. What game engine are you using? There's a good chance you can remake your material in the engine. That way, you could leave it as a procedural material (instead of a bitmap texture) which would solve your first problem (as procedural textures are inherently seamless), as well as saving some texture memory. – Christopher Bennett Sep 21 '20 at 09:45
-
1Yea unfortunately i gotta bake it into an image sequence because im using the roblox engine – Justin Melly Sep 21 '20 at 10:07
1 Answers
Tiling 4D Noise in 2D
Since Blender has given us 4D procedural noise textures, it's been possible to tile them without distortion in 2D.
We can map the given 2D X and Y onto two orthogonal circles in 4-space. As we loop around them, we return to where we started. (It's possible to map the plane onto a 3D torus in the texture's 3 space, but distortions result: the major and minor radii of the torus are either different, giving uneven scaling, or the same, resulting in poles, like mapping onto a sphere. This way, though, leaves the circles entirely independent - it's mapping onto the surface of a Clifford torus, although .. er .. I'm not sure it helps to know that.)
Tiling in Space
X and Y map to XYZW as shown below.. (the XYZW order doesn't actually matter, any old circles will do). The little division into 2*pi is just to get the tiling period to be logical in Blender units
Looping in Time
You can get the noise to loop in time by getting the centers of the circles we created before to go around another circle themselves, taking care not just to do it in X and Y, otherwise the texture would just go round and round in the tile:
Time Period is the repeat interval, Time Amplitude is the amount of shift per frame, and Time is the input that would be driven by some function of the frame number. The result is added to the previously generated XYZW.
With another node to scale the texture in the tiles, this is the tree:
An example of the result, tiled in space and time:
A node group with the described interface is included in the .blend:
- 76,260
- 8
- 77
- 190
-
2This node tree is as awesome as it is simple :) https://i.stack.imgur.com/VGHxs.gif – Gorgious Jan 04 '21 at 10:13
-
1@Gorgious Nice usage! Its alien oddity wakes a memory of Solaris ... (Tarkovsky's.. can't be bothered with the remake :) ) – Robin Betts Jan 04 '21 at 10:40
-
I just downloaded the blend file (linked in the answer). If you are reading this answer and scratching your head, you can link/append the node group from the blend file instead of implementing it from scratch. Thank you @RobinBetts – muhuk Sep 25 '21 at 09:11




