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
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