Craters generation
-------------------------------------------------------------------------------------
- added "successive-impacts" flag;
- perturbation applied following the vertex normal and not the crater centre normal,
in order to "follow" the mesh surface;
- added "smoothing steps" parameter to pre-smooth vertex normals a given number of times
before generating craters;
- added "elevation" parameter to decide the fraction of depth that will rise from mesh surface;
- added blending algorithm to blend the above elevation towards the original mesh surface;
the blending is supported by two new parameters:
- blending algorithm: defines the blending functions (there are four blending functions
available so far: exponential blending, linear blending, gaussian blending and f3 blending);
- blending threshold: defines the fraction of radius above which the radial function is
replaced by the blending function.
- removed "profile factor" parameter;
- filter description modified.
Code modifications: now the noise, radial and blending functions are defined as functors,
and the crater functor is basically a combination of a radial functor, a blending functor
and a noise functor (for postprocessing noise). All these functors work with normalized
inputs and returns normalized output; they are all implemented in the new filter_functors.h
file.
More to come: code cleanings, reorganizations and comments.
=============================================================================================
Files and classes modifications
---------------------------------------------------------------------------------------------
- FractalArgs class moved to fractal_perturbation.h
- CratersArgs class moved to craters_utils.h
- removed filter_args.h and radial_perturbation.h
Fractal displacement filters modifications
---------------------------------------------------------------------------------------------
- CR_FRACTAL_TERRAIN and FP_FRACTAL_MESH filters moved to deformation submenu;
- fractal displacement algorithm unified for terrain generation and mesh fractal displacement;
(lot of code cleaning!)
- heightFactor parameter name changed to "maxHeight". This parameter now controls
the maximum perturbation height, which is a fraction of bounding box diagonal or,
in the case of terrain generation, a fraction of grid side;
- vertex coordinates are now correctly normalized and scaled before computing the perturbation;
- preview enabled for CR_FRACTAL_TERRAIN filter;
- save-as-vertex-quality feature enabled for CR_FRACTAL_TERRAIN filter.
Craters generation modifications
---------------------------------------------------------------------------------------------
- removed inverse multiquadric and cauchy perturbations;
- nearest faces to samples now are detected using a uniform grid (GetClosest method).