Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Metal / Roughness together or separate?


Josh

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?

Link to post

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. 

Link to post

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. 

Link to post

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. 

Link to post

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.
 

Link to post
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
Link to post
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
Link to post
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! 

Link to post
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. ;)

Link to post
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
Link to post
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??? 😩

Link to post
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. 

Link to post
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.

Link to post

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.

Link to post
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.

Link to post
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
Link to post
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
Link to post

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.

Facebook Twitter Youtube Github Steam
×
×
  • Create New...