From CAD to VR: How to Optimize Models in Blender for Unity HDRP

Step-by-step guide to convert CAD into VR-ready assets using Blender and Unity HDRP. Reduce triangles, materials, and draw calls for smooth performance.

The first time I dropped a pristine CAD model into Unity, it looked fine in the editor — but in VR, the headset choked. Millions of triangles, hundreds of materials, and a frame rate that crawled. That’s when I learned a truth every XR designer runs into: CAD models are built for precision, not real-time. To make them VR-ready, they need cleaning, trimming, and repacking.

This guide walks through a practical workflow: converting CAD files into smooth, optimized VR assets using Blender as the bridge into Unity HDRP.

Import CAD into Blender

The first challenge is simply importing CAD into Blender. CAD tools describe objects as precise mathematical surfaces (B-reps), while Blender and Unity require polygon meshes (triangles).

From CAD, I usually export via FreeCAD or OnShape in a format Blender understands — STEP, IGES, or Parasolid (with add-ons), or more commonly OBJ/FBX/STL/GLTF. Key export settings:

  • Tessellation quality – controls triangle density. Too low, and curves look blocky; too high, and performance tanks.
  • Units – always export in metres.
  • Orientation – use Y-up if your CAD tool supports it.

Clean & Optimise in Blender

Once the model is in Blender, the real work starts. CAD exports are usually heavy, messy, and full of geometry you’ll never need in VR.

Here are the quickest ways to tidy a CAD model in Blender:

  1. Remove hidden parts – delete screws, bolts, internals, or anything the user won’t see.
  2. Merge duplicatesM → Merge by Distance.
  3. Recalculate normals – ensure shading looks correct.
  4. UV unwrap – Smart UV for simple objects; mark seams for detailed areas.
  5. Decimate – reduce triangles on curved surfaces without losing visible detail.
  6. Consolidate materials – merge hundreds of imported materials into 5–10.

For example: the propeller above started at 250K triangles and 20+ materials. After cleanup, it dropped to 170K triangles and just 5 materials — a 30% reduction while keeping full visual fidelity.

Export to Unity HDRP

With the model cleaned, export it to Unity. FBX is the safest format. In Blender’s export panel, be sure to check:

  • Apply Transforms – ensures scale and rotation are correct.
  • Forward: –Z, Up: Y – matches Unity’s coordinate system.
  • Smoothing: Face or Edge – preserves correct shading.

Pro tip: if the model imports at the wrong size (100× too big or too small), it usually means Scale wasn’t applied before export.

Import & Configure in Unity HDRP

Now for the satisfying part — drag your FBX into Unity HDRP.

Unity generates a mesh asset automatically. Drop it into a scene, open the Inspector, and you’ll usually need to:

  • Fix materials – assign the HDRP/Lit shader, then connect Albedo, Normal, and Metallic/Roughness maps.
  • Atlas textures – if you didn’t in Blender, merge textures here to reduce draw calls.
  • Set up LODs – add a LOD Group and create simplified meshes for distant views.

If the model shows up pink, Unity can’t find the textures. Check Blender’s export paths and confirm textures are copied into your Unity project.


Results: Before & After

Here’s why the cleanup matters — a quick performance comparison:

StageTrianglesDraw Calls
Raw CAD Import1.1M902
Blender Cleaned622K296
Blender Optimised CAD Model

Takeaway Checklist

Here’s a quick reference checklist to keep handy:

  • Export CAD in metres with reasonable tessellation.
  • In Blender: delete hidden parts, merge duplicates, recalc normals, unwrap UVs, consolidate materials.
  • Export FBX with Apply Transforms, Y-up, and 1-metre scale.
  • In Unity HDRP: assign HDRP shaders, merge materials, set LODs, add lighting.
  • Always test performance in the Stats window or Frame Debugger.

Optimising CAD for VR/AR isn’t glamorous, but it makes the difference between a jittery demo and a smooth, convincing experience. Do it a few times and it becomes second nature — and you’ll never drop a multi-million-triangle monster into Unity again.