Raymarcher Technical & APi Documentation
Raymarcher Modifier Category - Deformations
Namespace: Raymarcher.Objects.Modifiers
This modifier category contains various SDF deformations.
SDF modifiers in the Raymarcher inherit from the base class RMObjectModifierBase.

To create an SDF modifier directly on the SDF Object, use components in the Unity editor.
Note that it is not possible to create an SDF modifier at runtime, as each object must be created at compile time.

Creating multiple modifiers with amplified values for deforming the SDF might lead to breaking the SDF matrix, resulting in unwanted artifacts.
It is recommended to keep the effect of modifiers low. In case you genuinely need to deform the SDF in extreme ways, you should consider increasing the iteration count of the renderer.

RMModifier_ActiveState :: RMObjectModifierBase
Modifies an active state of the current sdf object (this is helpful while using Performant render type as the active state is not controlled in this render type).
RMModifier_Fragment :: RMObjectModifierBase
Creates a fragment-like effect on the current sdf object.
public Vector3 fragmentTiling;
public float fragmentEvolution;
public Vector3 fragmentScroll;
RMModifier_LinearDeform :: RMObjectModifierBase
Creates a linear deformation on Y axis of the locally marched position on the current sdf object.
public float deformAmplifier;
public float deformStep;
public float deformSmoothness;
RMModifier_Mirror :: RMObjectModifierBase
Creates a duplicate 'mirror' copies in three dimensions of the current sdf object.
public bool mirrorX;
public bool mirrorY;
public bool mirrorZ;
public Vector3 mirrorSpacing;
RMModifier_Noiser :: RMObjectModifierBase
Creates a noise-like effect on the current sdf object.
public float noiseAmountX;
public float noiseAmountY;
public float noiseAmountZ;
public float noiseBlend;
RMModifier_Twist :: RMObjectModifierBase
Creates a twist deformation on the current sdf object.
public float twistTileX;
public float twistTileY;
public float twistTileZ;

public float twistMultiplierX;
public float twistMultiplierY;
public float twistMultiplierZ;

public float twistScrollX;
public float twistScrollY;
public float twistScrollZ;