Home Technical Talk

3ds Max Arnold maps workflow

Chrismartinartist
polycounter lvl 3
Offline / Send Message
Pinned
Chrismartinartist polycounter lvl 3
I'm really confused with the best workflow for my project.
I'm using 3ds Max with Arnold Renderer. The scene has 20 or so objects, all are UV'd, some I need to be multiple materials others only one.
If I need an item to be both gold metal, and coloured glass, how do I get an Arnold standard surface to control both parts, or am I supposed to just use 2 standard surfaces plugged into a multi sub?
If that's the case how would that work with the normal map? Would I need to plug that into both surface shaders?
If using a multi sub is the way to go is there any point the objects being separate?
Also, when I finish doing everything with ahader trees, should I then bake everything down into simple maps (think I've seen a video on that), does that just take the literal look if the object and give me all the opacity/ambient/emission etc that I'd need for best compatibility elsewhere (sketchfab, unity, cgtrader, turbosquid, artstation.)

Thanks for any help

Replies

  • Eric Chadwick
    There's no hard rule here, it all depends.

    You can use 1 material for multiple different surface types, but it's usually more work to do this as you have to separate the surface types in every texture... Metalness, Roughness, Albedo, etc.

    This is often required for realtime export since we typically want less complex shaders, for better performance. So you combine surfaces into a shared texture set.

    For Arnold rendering though, it's much easier to use separate materials, and mask them with a Blend material.

    For example, I'm working on a lamp model with a stained glass lamp shade. The leading around each shard of glass is made of metal, it's really intricate. So my maps have to include both glass and metal. I can't separate the leading into a separate mesh, it would be too much mesh.

    https://github.com/KhronosGroup/glTF-Sample-Models/blob/875ed27c8d85dc86124d49f35797312002997158/2.0/StainedGlassLamp/README.md

    If you dig around you can find the maps.

    Live demo:
    https://sandbox.babylonjs.com/?kiosk=true&assetUrl=https://raw.githubusercontent.com/KhronosGroup/3D-Formats-Guidelines/main/figures/StainedGlassLamp-JPG-PNG.glb&autoRotate=true

    In Arnold and other path tracers, you would usually make a "stained glass" material, and a "leading" material, then use a Blend material to combine them with a b/w mask in the shape of the leading.

    Using separate materials makes it much easier to edit each in isolation, so you can tweak values for the metal color/Roughness/etc. without having to edit a bunch of bitmaps.
  • Chrismartinartist
    Offline / Send Message
    Chrismartinartist polycounter lvl 3
    Wow ok, I think I'm getting my head around that... I haven't used Blend yet, can it only do 2 materials? As some objects have 3 or more materials.

    This might be exactly what I was after, thank you very much.
  • Eric Chadwick
    You can nest Blend materials. Metal Material + a Rust Material into Blend Material 1 using a grunge mask, then plug Blend Material 1 + a Paint Material into Blend Material 2 with an OSL mask for paint wear, etc. 
  • Eric Chadwick
    However, if your aim is to move materials between renderers, both realtime and offline, then you'll want to avoid fancy blending graphs, and stick with standard metallic-roughness pbr, and use a single material per surface type.
  • Chrismartinartist
    Offline / Send Message
    Chrismartinartist polycounter lvl 3
    This is where I'm unsure where to proceed. The model is being made in 3ds Max 2019, with Arnold Renderer ideally, and I was going to try shader tree pbr kinda materials. I *think* (read: unsure) I see a youtube video where you can later bake complicated materials/shaders down into basic pbr maps, I was planning to do that for (presumably) better compatibility elsewhere.*

    I'm hoping to put the model on Sketchfab, CgTrader, TurboSquid, Artstation (including Store), Gumroad, and also hoping to get it into Unity and get some in-engine renders. That's the plan, however, I'm approaching the plan with a slightly blind 'cross that bridge when I get to it' kind of thing. Which hasn't always worked out in the past. The main problem is I'm uncertain (usually until I get there) what formats/requirements there are on each platform and end up winging it a bit towards the end.

    *A previous model I made with a complicated shader tree, I got to the end and couldn't figure out how to do this and it ended up being wasted on certain sites.

  • Eric Chadwick
    That's always going to be the case. Materials above and beyond standard PBR metallic-roughness will not transfer reliably between renderers. Each is so different in what it supports.

    If compatibility is key, then it's best to adjust the asset down to the common denominator of surface attributes:
    • Albedo
    • Metalness
    • Roughness
    • Occlusion
    • Normal
    • Opacity
    • Emissive
    Use a single UV channel. No blending or fresnel or anisotropy or anything "fancy" unless you're willing to add those in specific apps and then present those specific formats.

    We recently prepared guidelines for just this sort of purpose... How to make pbr assets that work in the widest possible set of renderers. What considerations and gotchas to plan for, etc. Might help you. https://github.com/KhronosGroup/3DC-Asset-Creation/blob/main/asset-creation-guidelines/RealtimeAssetCreationGuidelines.md

    One of the biggest problems you'll find is there is no common 3d format that stores pbr materials natively. FBX and OBJ don't. Well, FBX does in a partial way. I'm biased towards glTF, which is definitely an up and comer. Not all apps can load glTF yet, but it's an open standard with lots of freeware support.
  • Eric Chadwick
    I would also highly recommend researching the web stores where you want to sell. Carefully read their tech specs, plot out what their requirements are. Compare them all against each other, find the common denominator and prepare to that.

    Arnold is not the commonality I'll wager. Pbr most likely is.
  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    Others have gone over the details but I'd just do all my texturing in substance designer. With designer you can just output the materials setup for different renderers. There's an arnold and unity output preset. And it exports directly to sketchfab. 
Sign In or Register to comment.