For which formats are Cycles materials completely and accurately exported?

I'd like to export my scene to one or more of the file formats listed in the FileExport menu: .3ds, .dae, .obj, and so on. Which, if any, of these formats records all the details of Cycles materials – all the types of shaders, RGB curve nodes, all the texture types, and so on? If I make a complicated material in the Node Editor, will the visual appearance of the rendered object be properly conveyed to someone using 3D Studio or Wavefront? I'm not worried about meshes or most other things, just materials.

Lacking any of the software which would normally use any of the exportable formats, I have no way to check by direct experiment. Even if it did work – and even if Blender can re-load an exported file and the scene looks okay – I can't be sure if I just got lucky and unwittingly avoided some tricky feature.

• I don't know enough to answer outright, but maybe this will help? I believe if you made the materials with Open Shading Language OSL, 3ds max (beast 2014) can also use it. But that's complicated. Other than that, most render engines are very different from each other, often fundamentally different. You'll probably need to specify what render engine will be used. I think you could recreate simple cycles materials in another application, but probably not perfectly. I know of no export of cycles materials. Perhaps take screenshots of your material settings for someone else to recreate? – James Thomas Jul 15 '13 at 5:11
• As far as I know, nothing. Since the materials are node based, there are almost infinitely many possibilities of combinations of nodes to make all sorts of materials. It's not as simple as having certain sliders for certain things. – Greg Zaal Jul 15 '13 at 11:45

OSL materials transfer best, as James pointed out.
As far as I know, Cycles cannot currently export it's own materials. Blender Internal can sure export textured things though.

Anyway if your scene is already built up with Cycles your best chance for going to 3Ds Max is first .fbx and then .dae.

.3ds is old.
.obj is old too, but has worked well for me, especially concerning mesh-only models.
.dae is great with textures, optimized for gaming.
.fbx is great with textures, optimised for autodesk :)
dae and fbx should probably support shaders, but as stated before, Cycles doesn't support exporting them yet anyway.

more on .dae

• Cycles Material Export directly from Blender to Other Applications is not possible as far as my knowledge is concerned. Every application deals with the Materials in its own way. This is especially true for Node based Material editors. – Ali Jibran Aug 26 '13 at 18:51
• However,good result can by achieved by 1st baking the textures (in BI) , assigning them (with diff, normal, spec, emissive maps), creating required materials for all parts, then exporting them. This ensures that your material is exported with atleast Diffuse map properly assigned. You'll have to work some more to assign your other maps. Make sure you keep all your textures in your file root folder or sub folder and your texture maps are correctly pointing at them. – Ali Jibran Aug 26 '13 at 18:52

Answer: the .blend format. In other words, you can't export Cycles materials.

Under the hood, Cycles shaders are just a collection of OSL shaders. The way that OSL-capable render engines work is fundamentally different from render engines from just a few years ago. Instead of simply combining the diffuse, specular, and reflective components of a shader, they calculate radiance closures which tell the render engine about the surface, but do not give the final pixel color. See the OSL Introduction page for more details.

The only way you could possibly hope to completely and accurately export a Cycles shader is if you planned on using it in another OSL-capable render engine. Some include Arnold and Spectral Pixel. However, this is not yet possible, and is unlikely to happen, since each OSL-capable render engine has to implement the closures (Diffuse, Glossy, Subsurface Scattering, etc.) themselves, so there's no way to guarantee the same implementation.

So if you have a render engine you like, you had better create the materials using that software.