Compatibility

What Crystal carries over from your scene

Compiled from the code of Crystal 0.1.2 (24.10.2026). Each row says what works and what does not. "Baked" means 3ds Max renders the map into a texture beforehand. Whatever is not carried over, Crystal reports in its log, crystal.log.

yes partial baked no unverified

Materials

itemstatusdetails
CoronaPhysicalMtlpartial

Works: base colour, roughness, IOR, metal, refraction, thin walls, clearcoat, sheen, emission, opacity, anisotropy, bump, SSS, absorption, dispersion, displacement

Does not work: edge colour, clearcoat bump, IOR mode, maps for SSS radius, volume, thin absorption and anisotropy rotation, reflection and refraction background overrides

CoronaPhysicalMtl: complex metal IORpartial

Works: metal colour seen head-on

Does not work: the rim colour, which is Cycles' own

CoronaPhysicalMtl: translucency (not thin)partial

Works: approximately, through subsurface scattering

Does not work: an exact match with Corona

CoronaLegacyMtlpartial

Works: diffuse, reflection, Fresnel IOR, refraction, glossy refraction, SSS, translucency, absorption, scattering, dispersion, displacement

Does not work: maps for IOR, refraction colour and gloss, absorption and anisotropy rotation

CoronaLayeredMtlpartial

Works: base material, layers, amount, mask

Does not work: a mask amount below 100

CoronaRaySwitchMtlyes

Works: GI, direct, reflect and refract slots

CoronaSelectMtlyes

Works: the selected material

CoronaLightMtlpartial

Works: colour, map, intensity, opacity

Does not work: "Emit light" switched off, directionality

CoronaShadowCatcherMtlpartial

Works: backplate colour, shadow amount, alpha modes

Does not work: backplate map, reflections

CoronaVolumeMtlpartial

Works: a uniform medium: absorption, scattering, emission

Does not work: maps, inside-volume mode; scatters less than Corona

CoronaSkinMtlpartial

Works: one subsurface layer and one reflection

Does not work: the other layers

CoronaHairMtlpartial

Works: the hair colour on a glossy surface

Does not work: a hair shader

CoronaPortalMtlyes

Works: the object becomes a light portal and is not rendered

CoronaSlicerMtlno

What you get: a grey material

Physical Materialpartial

Works: the main PBR channels, dispersion

Does not work: diffuse roughness, thin film, displacement, separate transparency roughness, SSS depth and scale, coat colour and bump

PBR Material, glTF Materialyes

Works: through the Physical Material inside; their OSL maps are baked by 3ds Max

Multi/Sub-Objectyes

Works: per face, by the material ID list

Blendpartial

Works: mask, mix amount

Does not work: the mix curve

Double Sidedpartial

Works: the back-face material

Does not work: translucency

Top/Bottompartial

Works: world up

Does not work: local coordinates (treated as world)

Shell Material, Material Switcheryes

Works: the selected or baked material

Standard (Legacy)partial

Works: diffuse, glossiness, specular level, opacity, diffuse, opacity and bump maps

Does not work: the other maps

Matte/Shadowpartial

Works: Cycles' shadow catcher

Does not work: shadow brightness and colour, reflections

Objects with no materialyes

Works: the object's wire colour

V-Ray, Arnold and other materialsno

What you get: a grey material

Material editor previewspartial

Works: on the CPU, up to 48 samples, studio lighting

Does not work: the interactive material editor

Maps and textures

itemstatusdetails
Bitmappartial

Works: tiling, offset, W rotation, no-tile, channels 1–8, crop, Output

Does not work: U and V angles, Place mode, gamma other than 1.0 and 2.2

CoronaBitmappartial

Works: file, tiling, offset, channel

Does not work: real-world scale, rotation

UDIM, MultiTilepartial

Works: UDIM-named tiles (name.1001.ext)

Does not work: ZBrush and Mudbox naming

Missing texture fileyes

Works: black, as in Corona, with a log line

CoronaColoryes

Works: RGB, HDR, temperature, multiplier

CoronaColorCorrectpartial

Works: exposure, gamma, hue, tint, saturation, invert, brightness, contrast

Does not work: white balance, LUT, curves, green-magenta

Color Correctionpartial

Works: the main settings

Does not work: tint, channel rewiring, lift, per-channel lightness

CoronaNormalpartial

Works: the normal map

Does not work: flip red, swap red/green

Normal Bumppartial

Works: tangent space

Does not work: other spaces

CoronaBumpConverteryes

Works: height × strength

CoronaMixpartial

Works: 17 of 21 blend modes

Does not work: Gamma, Vivid light, Pin light, Hard mix (fall back to a plain mix)

Mixyes

Works: amount, mask, curve

Compositepartial

Works: modes that Cycles has

Does not work: the other modes (fall back to Normal)

RGB Multiply, RGB Tint, Output, Checkeryes

Works: all settings

Falloffpartial

Works: the main modes

Does not work: Shadow/Light (the first colour is used), "by object" (uses the view), local axes

Gradientpartial

Works: the gradient

Does not work: gradient noise

Tilespartial

Works: approximately, with Cycles' brick texture

Does not work: an exact pattern match

Noise, Dent, Cellular, Waterpartial

Works: approximately, with Cycles procedurals

Does not work: an exact pattern match

Gradient Ramp, Swirl, Mask, CoronaTileMap, Substance, OSLbaked

Works: 3ds Max renders them to a 1024 × 1024 texture over UV

Does not work: detail finer than that resolution

Marble, Wood, Smoke, Speckle, Splat, Stucco, Waves, Planet, Perlin Marblebaked

Works: a flat 1024² slice 200 units across, box-projected

Does not work: the 3D pattern: it repeats every 200 units

CoronaMultiMappartial

Works: random per object or instance

Does not work: hue, saturation and gamma randomisation

CoronaFrontBack, CoronaRaySwitch, CoronaSelect, CoronaAOyes

Works: all settings

CoronaTriplanarpartial

Works: the X map

Does not work: separate maps per axis, object space

CoronaRoundEdgespartial

Works: in a bump slot

Does not work: in other slots

CoronaWirepartial

Works: triangle edges

Does not work: hiding invisible edges

CoronaCurvaturepartial

Works: approximately

Does not work: an exact match with Corona

CoronaMappingRandomizerpartial

Works: random per object (different numbers than Corona)

Does not work: steps, stochastic tiling

Vertex Coloryes

Works: all settings

Map Output Selectorpartial

Works: picking an output

Does not work: over OSL maps (they are baked)

wParallax (jiWindowBox)yes

Works: all settings

Forest Color, Forest Edgeyes

Works: all settings

RailClone Colorunverified
CoronaEdgeMap, CoronaDistance, CoronaUserPropertyno

What you get: a constant colour ("far" or the default)

CoronaData, Raytrace, Reflect/Refract, Flat Mirror, Thin Wall Refraction, Particle Age, Particle MBlur, Camera Map Per Pixel, Vector Map, Vector Displacementno

What you get: magenta, with a warning in the log

Phoenix, tyFlow, Chaos Scatter maps; CoronaSky as a material mapno

What you get: magenta

Lights, sky and environment

itemstatusdetails
CoronaLightpartial

Works: sphere, rectangle, disk; Corona units, lm/cd/lx, temperature, IES, directionality, visibility

Does not work: the cylinder shape (renders as a sphere), the light's texture map

CoronaSunyes

Works: colour modes, temperature, legacy mode, size

CoronaSkypartial

Works: Cycles' physical sky driven by CoronaSun, ground colour

Does not work: clouds, the sun disc; side light differs by 15–30 %

Omni, Spot, Directionalpartial

Works: type, colour, multiplier, cone, shadows (when on)

Does not work: decay; omni and spot brightness is not calibrated

Photometric lightspartial

Works: IES files

Does not work: IES rotation

Physical Sun & Sky (Sun Positioner)no

What you get: background colour only

Skylight, Sun Positionerunverified
HDRI (Bitmap, CoronaBitmap)partial

Works: spherical mapping, rotation through U offset or angle, mirroring through negative U tiling

Does not work: W angle, other mappings

Environment colour, CoronaColor, CoronaColorCorrectyes

Works: all settings

Corona environment and overridesyes

Works: carried over when switching from Corona: direct, reflect, refract

Global volume (fog)partial

Works: CoronaVolumeMtl, as a 100 m sphere around the camera

Does not work: other volumes

Portalsyes

Works: CoronaPortalMtl, objects named "CrystalPortal…", automatic window portals

Lights scattered by Forest Packyes

Works: one light per item

Cameras

itemstatusdetails
Free/Target camera, viewportyes

Works: all settings

Orthographic camera and viewyes

Works: all settings

Clipping planesyes

Works: all settings

CoronaCampartial

Works: DOF, zoom, shutter, ISO, tilt/shift, auto vertical tilt, its own colour mapping and bloom

Does not work: bokeh shape; a horizontal tilt together with a vertical one

Physical Camerapartial

Works: DOF, focus, EV or ISO/f-stop/shutter, motion blur

Does not work: shift, distortion, vignetting, bokeh

CoronaCameraModpartial

Works: exposure

Does not work: the other settings

Depth of fieldyes

Works: matched to Corona at f/1.4

Motion blurpartial

Works: object and camera motion

Does not work: deforming meshes, space warps, per-object settings

Geometry and modifiers

itemstatusdetails
Meshes, modifier stacks, renderable splinesyes

Works: 3ds Max's final mesh; hidden and non-renderable objects are skipped

Smoothing groupspartial

Works: normal smoothing

Does not work: faces in several groups smooth only with faces of exactly the same set

Corona displacement (Physical, Legacy)partial

Works: true displacement at ~2 px, up to 6M triangles

Does not work: water level

CoronaDisplacementModno

What you get: the modifier is ignored

CoronaProxypartial

Works: its render mesh

Does not work: animated proxies (not verified)

Hair and Furpartial

Works: real curves, one colour per modifier

Does not work: a hair shader (a soft shader is used instead)

Ornatrix and other hair pluginsunverified

Works: if the plugin implements 3ds Max's hair interface

CDecalpartial

Works: projection in its box

Does not work: mask, bend, channel selection, decal bump and displacement

Camera and reflection visibilityno

What you get: only Cast Shadows is read

Third-party plugins

itemstatusdetails
Forest Pack Pro, ForestIvypartial

Works: real instances, Edge mode, scattered lights, Forest Color

Does not work: animated proxies

RailClonepartial

Works: segments as instances with their own materials

Does not work: non-geometric segments

Chaos Scatterpartial

Works: rebuilt from its settings at the same density, not at the same positions

Does not work: splines, volume, falloff, camera clipping, painted or edited instances

tyFlowpartial

Works: instances, each a separate mesh, up to 200,000

Does not work: tyFlow maps (magenta)

Phoenix FD, OpenVDBno

What you get: the volumes do not render

Corona settings

itemstatusdetails
Exposure, ACES OT, Filmic, Reinhard, contrastyes

Works: carried over when switching from Corona; ACES measured identical to Corona

White balance, tint, green-magenta, saturation, LUT, vignetteyes

Works: all settings

Bloom & Glareyes

Works: all nine settings; CoronaCam's override wins

Sharpeningpartial

Works: amount, radius

Does not work: blurring

Denoise amount, noise limit, max sample intensityyes

Works: all settings

Curves operator, reordered operatorsno

What you get: a fixed operator order

Denoiser type, pass and time limits, GI solvers, ray depthno

What you get: set in Crystal's own settings

Corona LightMix and LightSelectno

What you get: Crystal has its own LightMix, see below

Crystal features

itemstatusdetails
Devicesyes

Works: OptiX (default), CUDA, CPU

AMD and Intel GPUsno

What you get: choose CPU by hand: Crystal does not switch by itself

Denoisersyes

Works: OptiX, DLSS, temporal denoising for animation

Open Image Denoiseunverified
DLSS Ray Reconstructionpartial

Works: on RTX cards; upscaling in ActiveShade

Does not work: upscaling the final render, region render

Noise and time limits, adaptive sampling, GI cache, light treeyes

Works: all settings

Photon caustics, dispersionyes

Works: caustic casters and receivers are chosen automatically

Frame Bufferyes

Works: zoom, RGB/alpha, A/B compare, pixel probe, save PNG/EXR/HDR, region, camera picker

Render passespartial

Works: diffuse, glossy, transmission, emission, depth, normal, albedo, noisy — in Crystal's frame buffer

Does not work: handing passes to 3ds Max Render Elements

Render Elements 3ds Maxno

What you get: passes exist only in Crystal's frame buffer

LightMixpartial

Works: the first eight lights by name, the other lights, the environment and emission — in Crystal's frame buffer

Does not work: more than eight separate groups, Corona's LightMix

ActiveShade, region render, animation, autosave, pauseyes

Works: all of these

3ds Max 2023–2027partial

Works: every version is built and packaged

Does not work: only 2024 is render-tested

3ds Max 2022 and olderno

What you get: not built

Missing your material or plugin? Tell us on Boosty.