Jump to content

Metal / Roughness together or separate?


Josh
 Share

Recommended Posts

I have seen some examples that have metalness and roughness packed into a single texture, on different channels, and some that use separate textures.  Which is the more common convention from the modeling and paint programs that you use?

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

What I've commonly encountered is for metallic and roughness to be two separate channels. They represent two different things, so should each have their own channels. Something can be "rough" and not be "metallic". It's this way for glTF, in MODO, Substance Painter, and several other 3D and material creation apps. 

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

Typically they are exported as a single MATERIAL. Typically, in 3D modeling, a "texture" refers to diffuse color or albedo. Thus, a texture is simply the color channel of a material. So, in 3D modeling programs, albedo (diffuse color) would be represented by one texture (such as a photo of bricks). A normal map would be another channel represented by another image (the normal map image). Metallic would be another channel of that material and roughness yet another channel, but both metallic and roughness would be part of the same material. Does that make sense (it's late and I'm tired ;) ).

So, one material to rule them all ( ;) ), but that one material can reference several textures (or image maps), such as diffuse/albedo, normal, AO, etc. 

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

I don't know that, frankly, as I am just starting to learn Substance Painter (though not Designer at this point). I've been working in MODO for quite some time and am slowly transferring my work over to Blender in anticipation of v2.8's release. I work with another game engine and use glTF to bring in my models and materials. glTF makes it easy because there are simple rules for what channel is used for what.

I think what I've seen elsewhere is the end-user typically exports out what they need/want to use, such as a texture (albedo), a normal map, and AO. Then, in the engine, they can create a new material and add their exported images to the proper channels (normal map image in the normal map channel, etc.).

When a game engine imports glTF, for example, then it's up to the end-user to adhere to glTF specs. As long as they set things up properly in their 3D program, export to glTF, and if the game engine supports the format properly, then it's a smooth import from 3D app to game engine. 

I'm just using glTF as an example here. Not a lot of 3D apps or engines are supporting it yet, but I prefer it. 

Hopefully others will respond here and help to answer your question better than I have. 

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

Most (if not all) modeling/paint programs (3DCoat, Substance Painter/Designer, 3dsmax, Maya, Modo) allow the exporting of both options, either as single or as combined textures (using the alpha channel). I use both, but for speed I tend to use combined texture maps, as it requires less drawcalls and memory usage.

Sometimes I'd even use the RGB channels to store individual maps into one (for example R for roughness, G for metalness, and B for height or ambient occlusion). But it all depends on the possibilities of the engine you're using. 

Exporting from Substance Painter and/or Substance Designer is rather easy...you can use predefined export templates, and then customize them to your liking. Plenty of tutorials on that as well.

Same for 3DCoat, there's a ton of export templates for various programs/engines. And there's also the possibility to add your own custom export settings.
 

 

ZBrush 4R7 64-bit - 3DCoat 4.5 BETA 12 - Fl Studio 12 64Bit - LE 3.2 Indie version - Truespace 7 - Blender 2.71 - iClone 5.51 Pro - iClone 3DXChange 5.51 pipeline - Kontakt 5 - Bryce 7 - UU3D Pro - Substance Designer/Painter - Shadermap 3 - PaintShop Photo Pro X7 - Hexagon - Audacity - Gimp 2.8 - Vue 2015 - Reaktor 5 - Guitar Rig 5 - Bitmap2Material 3

Link to comment
Share on other sites

1 hour ago, ChrisV said:

Sometimes I'd even use the RGB channels to store individual maps into one (for example R for roughness, G for metalness, and B for height or ambient occlusion). But it all depends on the possibilities of the engine you're using. 

Interesting, because glTF, for example, uses RGB differently:

  • Red: Ambient Occlusion
  • Green: Roughness
  • Blue: Metallic

I know glTF is not the industry standard, but it is catching on. I believe Unreal will be adding glTF import (if they haven't already). 

  • Like 1

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

2 minutes ago, knocks said:

Many applications also natively support the substance sbsar format to allow editing of material properties.

Yeah, I sent an email asking them for their SDK.

  • Like 2
  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

1 hour ago, Argent Arts said:

Interesting, because glTF, for example, uses RGB differently:

  • Red: Ambient Occlusion
  • Green: Roughness
  • Blue: Metallic

I know glTF is not the industry standard, but it is catching on. I believe Unreal will be adding glTF import (if they haven't already). 

Yeah, it was just an example. I guess it's all a matter of what possibilities you have in your 3D modeling/painting program, and the engine you're using ?.

1 hour ago, knocks said:

Many applications also natively support the substance sbsar format to allow editing of material properties.

Yeah, that'd be sweet to have! 

 

ZBrush 4R7 64-bit - 3DCoat 4.5 BETA 12 - Fl Studio 12 64Bit - LE 3.2 Indie version - Truespace 7 - Blender 2.71 - iClone 5.51 Pro - iClone 3DXChange 5.51 pipeline - Kontakt 5 - Bryce 7 - UU3D Pro - Substance Designer/Painter - Shadermap 3 - PaintShop Photo Pro X7 - Hexagon - Audacity - Gimp 2.8 - Vue 2015 - Reaktor 5 - Guitar Rig 5 - Bitmap2Material 3

Link to comment
Share on other sites

3 minutes ago, Genebris said:

I like packing roughness into alpha channel of albedo. Then I can have just a grayscale metal map. And sometimes you don't even need a metal map so you end up with just two textures: AlbedoRoughness and Normal.

Yes, but sometimes we only need to set a percentage (how metallic or how rough) and are not even using a texture map at all. ;)

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

On 8/7/2018 at 4:07 PM, Argent Arts said:

Interesting, because glTF, for example, uses RGB differently:

  • Red: Ambient Occlusion
  • Green: Roughness
  • Blue: Metallic

I know glTF is not the industry standard, but it is catching on. I believe Unreal will be adding glTF import (if they haven't already). 

Can you upload some materials with all dependencies, in GLTF format? I'm looking at the format. Collada was a joke, but GLTF is actually pretty good.

Image1.thumb.jpg.dd5b877570d3c698cca4dc278e30185f.jpg

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

2 minutes ago, Argent Arts said:

glTF is fantastic for exporting/importing complete scenes, though, including animation. It would be great for importing prefabs, levels, level segments, characters, etc., into Leadwerks (or Turbo).

I was considering using it as our official format, but it looks like materials are tied to the model. The advantage GLTF has over FBX is there is less ambiguity in the material settings.

Did it ever occur to the geniuses over at Khronos that people might want to edit material files in the engine??? ?

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

2 minutes ago, Josh said:

I was considering using it as our official format, but it looks like materials are tied to the model. The advantage GLTF has over FBX is there is less ambiguity in the material settings.

Did it ever occur to the geniuses over at Khronos that people might want to edit material files in the engine??? ?

You should be able to. I was dabbling with the Godot engine, which imports glTF. Once the mode, with the material, is imported, I was easily able to alter the material, changing roughness, metallic, swapping out the texture image, etc. So, this should be quite doable. 

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

5 minutes ago, Argent Arts said:

You should be able to. I was dabbling with the Godot engine, which imports glTF. Once the mode, with the material, is imported, I was easily able to alter the material, changing roughness, metallic, swapping out the texture image, etc. So, this should be quite doable. 

No, what I mean is they are not thinking in terms of a material being a file. They think it is a bunch of settings packed into a model. Therefore, Substance Designer will never export a GLTF material, and it won't have the network effects that are the whole benefit of a standardized format. Otherwise, I would have considered replacing our model and material files completely with GLTF.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

I don't know or use Substance Designer, but Substance Painter will export to glTF 2.0. The purpose of glTF is to create a standard for exporting/importing SCENES, as per the Khronos website:
 

Quote

glTF™ (GL Transmission Format) is a royalty-free specification for the efficient transmission and loading of 3D scenes and models by applications.

As a result, I don't think that materials, by themselves, were in mind when they created this format. Having said that, it's great for what it does. And it gets us out from under the yoke of Autodesk, Autodesk FBX licencing, and the ever changing FBX format. 

Since it appears that glTF is only for scenes, could it still not be used to get materials into your engine? For example, someone could apply the material to any object, like a cube, export it, import into Leadwerks (for example) and then Leadwerks would provide access to the material so the end-user could alter it and/or apply it to other objects in Leadwerks? 

In Godot, once I have imported the scene via glTF, I can drill down to the material on an item, copy the material, and paste it to a totally unrelated object. So, glTF could still be used to get materials into Leadwerks to be both edited and used on other items, such as the CSG items there.

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

17 minutes ago, Josh said:

I was considering using it as our official format,

Not (yet) every 3Dmodeling/painting program can export to GLTF, Josh. How are we going to import our .obj/.fbx models then ??

 

ZBrush 4R7 64-bit - 3DCoat 4.5 BETA 12 - Fl Studio 12 64Bit - LE 3.2 Indie version - Truespace 7 - Blender 2.71 - iClone 5.51 Pro - iClone 3DXChange 5.51 pipeline - Kontakt 5 - Bryce 7 - UU3D Pro - Substance Designer/Painter - Shadermap 3 - PaintShop Photo Pro X7 - Hexagon - Audacity - Gimp 2.8 - Vue 2015 - Reaktor 5 - Guitar Rig 5 - Bitmap2Material 3

Link to comment
Share on other sites

3 minutes ago, Argent Arts said:

As a result, I don't think that materials, by themselves, were in mind when they created this format. Having said that, it's great for what it does. And it gets us out from under the yoke of Autodesk, Autodesk FBX licencing, and the ever changing FBX format. 

Agreed, I have spent about $4000 maintaining support for FBX, which is currently the only option.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

2 minutes ago, ChrisV said:

Not (yet) every 3Dmodeling/painting program can export to GLTF, Josh. How are we going to import our .obj/.fbx models then ??

Same way as now, just convert FBX to GLTF instead of MDL.

The big benefit could be that you load a model and all the textures and material settings show up exactly as you expect them to.

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

5 minutes ago, ChrisV said:

Not (yet) every 3Dmodeling/painting program can export to GLTF, Josh. How are we going to import our .obj/.fbx models then ??

Yeah, glTF shouldn't be the only format. OBJ and FBX should probably still be offered. However, I don't believe it will be long before most 3D programs offer glTF as an export option. Substance Painter already does. MODO and Blender already  do (Blender via an AddOn). From a Google search I see that Babylon.js offers a glTF exporter for MAX. There might be others exporters for the other 3D apps, too.

Oh! And there appears to be a number of tools to convert file formats, like FBX, to glTF, too. So, you can just export out of your 3D app via FBX, for example, convert it to glTF, then simply bring it into the app that requires the glTF file.

  • Like 1

Creating professional 2D and 3D content is my passion!
Monkey Frog Studio

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...