User Guide Cancel

Layering Bind Materials - Shader API | Substance 3D Painter

Layering Bind Materials - Shader API

Material layering: bind materials as shader parameters

A material is defined by a unique identifier 'id'. Additional parameters:

  • 'default': the default material resource name to be used.
  • 'size': the texture size of the material maps.
  • 'group': the UI group of the material selection widget.

Example:

//: materials [
//: {
//: "id": "Material1",
//: "default": "Concrete 044",
//: "size": 512,
//: "group": "Material 1"
//: }, {
//: "id": "Material2",
//: "default": "Leaves elm",
//: "size": 1024,
//: "group": "Material 2"
//: }
//: ]
//: materials [ //: { //: "id": "Material1", //: "default": "Concrete 044", //: "size": 512, //: "group": "Material 1" //: }, { //: "id": "Material2", //: "default": "Leaves elm", //: "size": 1024, //: "group": "Material 2" //: } //: ]
//:  materials [ 
//:    { 
//:       "id": "Material1", 
//:       "default": "Concrete 044", 
//:       "size": 512, 
//:       "group": "Material 1" 
//:    }, { 
//:       "id": "Material2", 
//:       "default": "Leaves elm", 
//:       "size": 1024, 
//:       "group": "Material 2" 
//:    } 
//:  ]

To bind a channel from a material to a sampler, define an auto param with the id of the material followed by the channel tag (see the available channels in all-engine-params.glsl):

//: param auto Material1.channel_basecolor
uniform sampler2D basecolor_tex1;
//: param auto Material1.channel_metallic
uniform sampler2D metallic_tex1;
//: param auto Material1.channel_roughness
uniform sampler2D roughness_tex1;
//: param auto Material2.channel_basecolor
uniform sampler2D basecolor_tex2;
//: param auto Material2.channel_metallic
uniform sampler2D metallic_tex2;
//: param auto Material2.channel_roughness
uniform sampler2D roughness_tex2;
//: param auto Material1.channel_basecolor uniform sampler2D basecolor_tex1; //: param auto Material1.channel_metallic uniform sampler2D metallic_tex1; //: param auto Material1.channel_roughness uniform sampler2D roughness_tex1; //: param auto Material2.channel_basecolor uniform sampler2D basecolor_tex2; //: param auto Material2.channel_metallic uniform sampler2D metallic_tex2; //: param auto Material2.channel_roughness uniform sampler2D roughness_tex2;
//: param auto Material1.channel_basecolor 
uniform sampler2D basecolor_tex1; 
//: param auto Material1.channel_metallic 
uniform sampler2D metallic_tex1; 
//: param auto Material1.channel_roughness 
uniform sampler2D roughness_tex1; 
 
//: param auto Material2.channel_basecolor 
uniform sampler2D basecolor_tex2; 
//: param auto Material2.channel_metallic 
uniform sampler2D metallic_tex2; 
//: param auto Material2.channel_roughness 
uniform sampler2D roughness_tex2; 
 

Get help faster and easier

New user?