Deformation
Material Layer System
Modular Character Support
Purpose: This guide covers everything about FleshRing’s Refinement & Smoothing system. After reading this page, you’ll understand how each smoothing pass works, when to use which settings, and how to solve common deformation artifacts with confidence.

Before Refinement

After Refinement
Refinement is FleshRing’s post-processing pipeline that runs after Tightness and Bulge deformation. It transforms raw deformation results into clean, natural-looking flesh compression.
Without Refinement, deformation often produces:
The Refinement pipeline solves all of these through a multi-stage GPU Compute Shader process.
Key Insight: Tightness and Bulge define what deforms. Refinement defines how well it looks.
Refinement executes in a fixed order. Each stage feeds into the next:
Tightness + Bulge (Input)
│
▼
┌─────────────────────────┐
│ 1. Smoothing Volume │ ← Determine WHICH vertices get smoothed
│ Calculation │
└──────────┬──────────────┘
▼
┌─────────────────────────┐
│ 2. Deformation Spread │ ← Gradually propagate deformation outward
│ (Optional) │
└──────────┬──────────────┘
▼
┌─────────────────────────┐
│ 3. Radial Smoothing │ ← Uniformize radii at same height
└──────────┬──────────────┘
▼
┌─────────────────────────┐
│ 4. Surface Smoothing │ ← Laplacian mesh smoothing
│ (Standard / Taubin) │
└──────────┬──────────────┘
▼
┌─────────────────────────┐
│ 5. Edge Length │ ← PBD constraints preserve volume
│ Preservation (PBD) │
└──────────┬──────────────┘
▼
Normal & Tangent Recompute (Output)
| Stage | Purpose | Default | Key Parameter |
|---|---|---|---|
| Smoothing Volume | Define smoothing region | ON | Smoothing Volume Mode |
| Deformation Spread | Blend deformation into surroundings | OFF | Spread Iterations |
| Radial Smoothing | Cylindrical uniformization | ON | Radial Blend Strength |
| Surface Smoothing | Topology-aware mesh smoothing | ON | Smoothing Iterations |
| Edge Length Preservation | PBD volume maintenance | ON | Constraint Iterations |
Note: Each stage can be individually enabled/disabled. The master toggle Enable Refinement controls the entire pipeline.
| Property | Type | Default |
|---|---|---|
bEnableRefinement |
bool | true |
When to disable:
Tip: If your mesh looks wrong, toggle this OFF first. If the artifact disappears, the issue is in refinement settings. If it persists, the issue is in Tightness/Bulge.
Before any smoothing runs, FleshRing must decide which vertices receive smoothing. The Smoothing Volume defines this region.
Vertices inside the smoothing volume receive smoothing (with falloff). Vertices outside are untouched — preserving the original mesh shape.
| Property | Type | Default |
|---|---|---|
SmoothingVolumeMode |
Enum | Depth-Based (Topology) |
Two modes are available:
| Mode | How It Works | Best For |
|---|---|---|
| Depth-Based (Topology) | Counts edge hops from deformed vertices | Organic shapes, complex topology |
| Bounds Expand (Z) | Expands axis-aligned bounding box | Simple cases, flat regions |
The default and recommended mode. It determines the smoothing region by counting topology hops (edge connections) from deformed vertices outward.
How it works:
Max Smoothing Depth is reachedSeed (hop 0) → hop 1 → hop 2 → ... → Max Smoothing Depth
Full effect ↓ ↓ ↓
Gradual falloff No smoothing
Why this is better:
| UI Label | Property | Type | Default | Range | Description |
|---|---|---|---|---|---|
| Max Smoothing Depth | MaxSmoothingHops |
int | 10 | 1~20 | Maximum topology hops from deformed vertices |
| Depth Falloff | HopFalloffType |
Enum | Hermite | Linear/Quadratic/Hermite | Smoothing intensity decay curve |
Max Smoothing Depth:
| Value | Effect | Use Case |
|---|---|---|
| 1-3 | Minimal smoothing region | Thin bands, subtle effects |
| 5-10 | Moderate smoothing region | Most use cases (default 10) |
| 15-20 | Wide smoothing region | Large compression areas, extreme bulge |
Tuning Tip: If you see visible boundary artifacts where smoothing “stops”, increase Max Smoothing Depth by 5 and check again.
Depth Falloff:
Controls how smoothing intensity decreases with distance from deformed vertices.
| Falloff Type | Curve Shape | Transition Quality |
|---|---|---|
| Linear | Straight line | Sharp boundary, visible edge |
| Quadratic | Gentle curve | Moderate smoothness |
| Hermite (default) | S-curve | Smoothest transition, recommended |
Recommendation: Always use Hermite unless you specifically want a sharper boundary.
A simpler alternative that expands the Ring’s axis-aligned bounding box to define the smoothing region.
How it works:
| --- | --- | --- | --- | --- | --- |
Advantages:
Disadvantages:
When to use: Only if Depth-Based mode causes unexpected results on non-manifold or highly complex meshes. For most cases, Depth-Based (Topology) is superior.
| --- | --- | --- |
Deformation Spread gradually propagates the displacement from deformed vertices (Tightness + Bulge) into surrounding mesh areas. Instead of a hard boundary between “deformed” and “undeformed” vertices, it creates a smooth gradient.
Think of it like dropping ink on wet paper — the deformation “bleeds” outward naturally.
Availability: Only available in Depth-Based (Topology) smoothing volume mode.
Iteration 0: Seed ██████ | Neighbor ░░░░░░ | Far ░░░░░░
Iteration 5: Seed ██████ | Neighbor ████░░ | Far ░░░░░░
Iteration 10: Seed ██████ | Neighbor █████░ | Far ███░░░