u/rovillanueva

I built a clay override that works by material, not by object — unlike Corona's native one
▲ 9 r/3dsmax+1 crossposts

I built a clay override that works by material, not by object — unlike Corona's native one

Hey all, sharing a little tool I've been using in production and finally cleaned up for release.

The problem: Corona's native Material Override is great for clay renders, but it's all-or-nothing — it replaces every material in the scene. That's annoying when you need glass, lights, portals, or anything with displacement/opacity to stay visible so your lighting preview actually makes sense.

What it does: OverrideByMaterial lets you define exclusions instead — by material type (lights, portals, slicers, refractive materials), by name pattern (wildcards like *glass*), or by manually picking materials straight from the Slate/compact Material Editor. It recursively walks Multi/Sub-Object, Blend, Shell, and Corona Layered trees, and it also supports XRef Scene content. If a material has bump/displacement/opacity, it'll copy those maps onto the clay version so you don't lose the scene's silhouette.

It's got a "safe mode" baked in too — it calls holdMaxFile() before applying anything, and there's a dedicated Restore button since Ctrl+Z won't undo the swap. There's also an Automatic mode that hooks into pre/post-render so it just feels like flipping one checkbox.

MIT licensed, single .ms file, no dependencies. Works from 3ds Max 2019+ and Corona 9+ (I've tested on 2023 / Corona 14).

Repo here: https://github.com/rovillanueva/OverrideByMaterial

Would love feedback — especially if anyone wants V-Ray support or has edge cases where the exclusion logic breaks. Open to PRs too.

u/rovillanueva — 3 days ago