Quick answer: Use the Lit Output Mesh context. Mesh import → Normals = Import or Calculate. Output context Normal Source = Mesh.

Particle mesh imports cleanly. Place it in VFX Graph. Renders flat-shaded with hard polygon edges. Output context isn’t sampling smooth normals.

The Symptom

Mesh in scene with a regular MeshRenderer = smooth. Same mesh as VFX Graph output = faceted. Lighting looks chunky.

The Fix

Mesh Import Settings (FBX/OBJ inspector):
  Normals:           Import   // or Calculate, smoothing 60
  Tangents:          Calculate
  Smoothing Angle:   60

VFX Graph → Output Particle Lit Mesh:
  Right-click Unlit Mesh output → Convert to Lit
  Material Type:     Standard Lit
  Normal Source:     Mesh   // not Computed
  Smooth Shading:    on

The Lit output context wires mesh normals into the lighting model. Default Unlit just multiplies albedo by tint, so all faces read the same brightness.

Why the Defaults Bite

Unlit Mesh output is the cheapest path; VFX Graph picks it on context creation for performance. Convert to Lit only when needed; consider Decal Lit for screen-space splats.

Verifying

Side-by-side: regular MeshRenderer vs VFX output. After the fix they shade identically. Frame Debugger shows the lit pipeline including the particle pass.

“Lit context. Mesh normals. Smooth shading on. Lighting reads correctly.”

Related Issues

For VFX spawn rate dropping mid-burst, see spawn rate. For URP decal on skinned, see URP decal.

Lit context. Mesh normals on. Smooth shading.