noiseperlin-noisehexagonal-tilessimplex-noise

How to make honeycomb version of perlin noise?


I wish to:

Make regular 2d perlin noise constrain into a quantized, straight line version of itself, where the straight lines are 60°

Maybe i can quantize the input of the perlin noise function to be on the 3 60° axes?

Perhaps i could rewrite 2d simplex noise so that it works from 3 axes of the x-z plane instead of just xz axes?

A less good solution is to take 3 irregular saw waves and multiply them on the 3 axes.

Goal: I am testing perlin landscapes displayed using isometric 60° Regular Triangle Mesh (i.e. hexagons). it's nicer than square mesh and a more efficient use of space. It would look very nice using lofi hex based perlin noise mointains, because on a 50 degree line for example, the vertices make zig zags, so if i can control the angles of the perlin noise, i can control the quality of the hexagon based world.


Solution

  • ok i have made honeycomb perlin noise LOL!

    its same as perlin3d, except abs(vtx.xyz) is Mathf.Abs(vtx.x) , Mathf.Abs(vtx.x*.5-vtx.z*.866) , Mathf.Abs(vtx.x*.5+vtx.z*.866) ... here are pics of perlin noise using 60'deg axes:

    60' without cubic interpolation without cubic interpolation

    60' with cubic interpolation with cubic interpolation