This looks odd. FMath::PerlinNoise3D returns in the range -1, 1 and you are subtracting 0.5 to make the range -1.5, 0.5, so 3/4 of your density values are going to be negative - is that what you intend?
This looks odd. FMath::PerlinNoise3D returns in the range -1, 1 and you are subtracting 0.5 to make the range -1.5, 0.5, so 3/4 of your density values are going to be negative - is that what you intend?