[Plugin] Simplex Noise 1D,2D,3D,4D Fast Perlin Noise Version

The values that come out the functions are noise value, by default between -1 and 1, for a given set of inputs.

Noa3,
You could get your desired sample back out by combining the results several times over in octaves. Where every octave uses a successively doubled set of inputs and successively halved outputs. See my example code below:



TArray<float> currentHeightMap;
currentHeightMap.SetNumZeroed(myGrid->numNodes);
for (int32 nodeIndex = 0; nodeIndex < myGrid->numNodes;++nodeIndex)
{
	FVector nodeLocation = myGrid->getNodeLocationOnSphere(myGrid->gridLocationsM[nodeIndex]);
	float magReduction = 1;
	for (int32 octave = 0; octave < numOctaves;++octave)
	{
		currentHeightMap[nodeIndex] += USimplexNoiseBPLibrary::SimplexNoise3D(nodeLocation.X, nodeLocation.Y, nodeLocation.Z)/magReduction;
		nodeLocation *= 2;
		magReduction *= 2;
	}
}


Note that I’m using it for 3d locations on a sphere, but the same idea would apply for any 2D or 3D location. Here’s a very rough height map I’m getting a sphere using this (note that I’m not blending between colors for the heights here just giving my self a rough idea of what I’m getting):