Example #1
0
def import_mats():
    ## import pipeline pbrs.
    material_dir = material_folder_field.value
    mats = os.listdir(material_dir)
    print(mats)
    matid = 0
    for m in mats:

        search_dir = (material_folder_field.value + mats[matid])
        files = os.listdir(search_dir)
        first_file = files[0]
        #gets the material name prefix
        prefix = first_file.split(sufr["albedo"])
        matName = prefix[0]
        print(matName)
        #matNameb = (prefix[0]+prefix[1])
        #finds images according to naming convensions
        img_albedo = (search_dir + "/" + matName + sufr["albedo"])
        img_normal = (search_dir + "/" + matName + sufr["surface"])
        img_gloss = (search_dir + "/" + matName + sufr["microsurface"])
        img_specular = (search_dir + "/" + matName + sufr["reflectivy"])

        mat = mset.Material(name=matName)
        mat.getSubroutine("surface").setField("Normal Map",
                                              mset.Texture(img_normal))
        #mat.setSubroutine("microsurface","Gloss")
        mat.getSubroutine("microsurface").setField("Roughness Map",
                                                   mset.Texture(img_gloss))
        mat.getSubroutine("albedo").setField("Albedo Map",
                                             mset.Texture(img_albedo))
        #mat.setSubroutine("reflectivity","Specular")
        mat.getSubroutine("reflectivity").setField("Metalness Map",
                                                   mset.Texture(img_specular))

        matid = matid + 1
Example #2
0
def create_mat_images():
    print("building simple Sp gloss shader")
    # Determine search area
    search_dir = material_folder_field.value
    files = os.listdir(search_dir)
    first_file = files[0]
    #gets the material name prefix
    prefix = first_file.split("_")
    matName = prefix[0]
    #matNameb = (prefix[0]+prefix[1])

    #finds images according to naming convensions
    img_albedo = (material_dir + matName + sufx["albedo"])
    img_normal = (material_dir + matName + sufx["surface"])
    img_gloss = (material_dir + matName + sufx["microsurface"])
    img_specular = (material_dir + matName + sufx["reflectivy"])

    #create and build material
    mat = mset.Material(name=matName)
    mat.getSubroutine("surface").setField("Normal Map",
                                          mset.Texture(img_normal))
    mat.setSubroutine("microsurface", "Gloss")
    mat.getSubroutine("microsurface").setField("Gloss Map",
                                               mset.Texture(img_gloss))
    mat.getSubroutine("albedo").setField("Albedo Map",
                                         mset.Texture(img_albedo))
    mat.setSubroutine("reflectivity", "Specular")
    mat.getSubroutine("reflectivity").setField("Specular Map",
                                               mset.Texture(img_specular))
    def assign_SurfaceShader_Detail_Normals(cls, material, map1, map2):
        material.setSubroutine('surface', 'Detail Normals')
        if os.path.isfile(map1):
            myTexture = mset.Texture(path=map1)
            myTexture.sRGB = False
            myTexture.useMipmaps = True
            material.getSubroutine('surface').setField('Normal Map', myTexture)

        if os.path.isfile(map2):
            myTexture = mset.Texture(path=map2)
            myTexture.sRGB = False
            myTexture.useMipmaps = True
            material.getSubroutine('surface').setField('Detail Normal Map',
                                                       myTexture)

        material.getSubroutine('surface').setField('Flip Y', True)
 def assign_TransparencyShader_Dither(cls, material, map1):
     material.setSubroutine('transparency', 'Dither')
     if os.path.isfile(map1):
         myTexture = mset.Texture(path=map1)
         myTexture.sRGB = False
         myTexture.useMipmaps = True
         material.getSubroutine('transparency').setField(
             'Alpha Map', myTexture)
 def assign_ReflectivityShader_AdvMetalness_Specular(cls, material, map1):
     material.setSubroutine('reflectivity', 'Adv. Metalness')
     if os.path.isfile(map1):
         myTexture = mset.Texture(path=map1)
         myTexture.sRGB = False
         myTexture.useMipmaps = True
         material.getSubroutine('reflectivity').setField(
             'Specular Level Map', myTexture)
 def assign_AlbedoShader(cls, material, map1):
     material.setSubroutine('albedo', 'Albedo')
     if os.path.isfile(map1):
         myTexture = mset.Texture(path=map1)
         myTexture.sRGB = True
         myTexture.useMipmaps = True
         material.getSubroutine('albedo').setField('Albedo Map', myTexture)
         material.getSubroutine('albedo').setField('Color', [255, 255, 255])
    def assign_MicroSurfaceShader_Roughness(cls, material, map1):
        material.setSubroutine('microsurface', 'Roughness')
        if os.path.isfile(map1):
            myTexture = mset.Texture(path=map1)
            myTexture.sRGB = False
            myTexture.useMipmaps = True
            material.getSubroutine('microsurface').setField(
                'Roughness Map', myTexture)

        material.getSubroutine('microsurface').setField('Roughness', 1)
# Set Camera
if Items["CAMERA"] != "":
    mset.setCamera(mset.findObject(Items["CAMERA"]))

# Load and Assign Material to matching Mesh
for item in Items['TEXDATA']:
    MeshName = Items['TEXDATA'][item]['Mesh']
    MaterialName = Items['TEXDATA'][item]['Material']
    SceneMesh = mset.findObject(MeshName)
    Material = mset.findMaterial(MaterialName)

    MaterialTextures = list(Items['TEXDATA'][item].keys())

    if 'Albedo' in MaterialTextures:
        Material.albedo.setField(
            'Albedo Map', mset.Texture(Items['TEXDATA'][item]['Albedo']))
    if 'MaterialTint' in MaterialTextures:
        Material.albedo.setField('Color',
                                 Items['TEXDATA'][item]['MaterialTint'])
    if 'Normal' in MaterialTextures:
        Material.surface.setField(
            'Normal Map', mset.Texture(Items['TEXDATA'][item]['Normal']))
    if 'FlipNormalY' in MaterialTextures:
        Material.surface.setField(
            'Flip Y',
            True if Items['TEXDATA'][item]['FlipNormalY'] == 1 else False)
    if 'Roughness' in MaterialTextures:
        Material.microsurface.setField(
            'Gloss Map', mset.Texture(Items['TEXDATA'][item]['Roughness']))
        Material.microsurface.setField('Invert', True)
    elif 'Gloss' in MaterialTextures:
# Set Camera
if Items["CAMERA"] != "":
        mset.setCamera(mset.findObject(Items["CAMERA"]))

# Load and Assign Material to matching Mesh
for item in Items['TEXDATA']:
        MeshName = Items['TEXDATA'][item]['Mesh']
        MaterialName = Items['TEXDATA'][item]['Material']
        SceneMesh = mset.findObject(MeshName)
        Material = mset.findMaterial(MaterialName)

        MaterialTextures = list(Items['TEXDATA'][item].keys())

        if 'Albedo' in MaterialTextures:
                Material.albedo.setField('Albedo Map', mset.Texture(Items['TEXDATA'][item]['Albedo']))
        Material.albedo.setField('Color', [1.0,1.0,1.0])
        if 'Normal' in MaterialTextures:
                Material.surface.setField('Normal Map', mset.Texture(Items['TEXDATA'][item]['Normal']))
        if 'Roughness' in MaterialTextures:
                Material.microsurface.setField('Gloss Map', mset.Texture(Items['TEXDATA'][item]['Roughness']))
                Material.microsurface.setField('Invert', True)
        elif 'Gloss' in MaterialTextures:
                Material.microsurface.setField('Gloss Map', mset.Texture(Items['TEXDATA'][item]['Gloss']))
        if 'Specular' in MaterialTextures:
                Material.reflectivity.setField('Specular Map', mset.Texture(Items['TEXDATA'][item]['Specular']))
        if 'Displacement' in MaterialTextures:
                Material.displacement.setField('Displacement Map', mset.Texture(Items['TEXDATA'][item]['Displacement']))

UseTransparency = True if Items["TRANSPARENT"] == 1 else False