@HeadClot: In the case of not pre-generating the values with the noise generator, it's just a simple matter of displacing the distance in the USphereWorldGenerator class. You could add a USphereWorldGenerator to that class or inherit from it, and construct the generators with blueprints to easily play around with the values.
Simple displacement can be done like this, tho I'm not recommending it if you've got a big world and the noise generator chain gets too complex. As you then move about with your character, it will again and again probe the noise values, so you should probably pre generate those values and then apply them, as recalculating the heights are a waste of resources and very costly.
Simple displacement can be done like this, tho I'm not recommending it if you've got a big world and the noise generator chain gets too complex. As you then move about with your character, it will again and again probe the noise values, so you should probably pre generate those values and then apply them, as recalculating the heights are a waste of resources and very costly.

Code:
float UPerlinSphereGenerator::GetDefaultValue(int X, int Y, int Z) { float Alpha = -1.0f; float GeneratedPerlinHeight = 0.0f; if (UseNoiseGenerator) { NoiseGenerator = NoiseGenerator == nullptr ? NewObject<UUFNNoiseGenerator>() : NoiseGenerator; GeneratedPerlinHeight = NoiseGenerator->GetNoise2D(X, Y) * PerlinHeightMultiplier; } // Displace (fill) the ground up to the specified distance float Distance = FVector(X, Y, Z).Size() + GeneratedPerlinHeight; Alpha = FMath::Clamp(Distance - LocalRadius, -2.f, 2.f) / 2; Alpha *= HardnessMultiplier; return Alpha * (InverseOutsideInside ? -1 : 1); }
Comment