Exemple #1
0
def makeMaterial(me_ob, meshInfo):
    meshFullName = meshInfo.name
    textureFilepaths = meshInfo.textures

    materialData = bpy.data.materials.new(meshFullName)
    if xpsSettings.colorizeMesh:
        color = randomColorRanged()
        materialData.diffuse_color = color
    materialData.use_transparent_shadows = True
    me_ob.materials.append(materialData)

    renderType = xps_material.makeRenderType(meshFullName)

    rGroup = xps_material.RenderGroup(renderType)

    for texIndex, textureInfo in enumerate(textureFilepaths):
        textureFilename = textureInfo.file
        textureUvLayer = textureInfo.uvLayer
        try:
            textureBasename = os.path.basename(textureFilename)

            # load image
            imageFilepath = makeImageFilepath(textureBasename)
            imgTex = makeTexture(imageFilepath)

            textureSlot = newTextureSlot(materialData)
            textureSlot.texture = imgTex
            textureSlot.use = False

            if (me_ob.uv_layers):
                textureSlot.uv_layer = me_ob.uv_layers[textureUvLayer].name

            xps_material.textureSlot(rGroup, texIndex, materialData)
            print("Texture: " + textureSlot.name)

        except Exception as inst:
            print("Error loading " + textureBasename)
            print(traceback.format_exc())

            exc_type, exc_obj, exc_tb = sys.exc_info()
            fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
            print(exc_type, fname, exc_tb.tb_lineno)

            print(type(inst))  # the exception instance
            print(inst.args)  # arguments stored in .args
            print(inst)
            # If error loading texture, turn transparency off
            materialData.alpha = 1.0
            materialData.use_transparency = True
def makeMaterial(me_ob, meshInfo):
    meshFullName = meshInfo.name
    textureFilepaths = meshInfo.textures

    materialData = bpy.data.materials.new(meshFullName)
    if xpsSettings.colorizeMesh:
        color = randomColorRanged()
        materialData.diffuse_color = color
    materialData.use_transparent_shadows = True
    me_ob.materials.append(materialData)

    renderType = xps_material.makeRenderType(meshFullName)

    rGroup = xps_material.RenderGroup(renderType)

    for texIndex, textureInfo in enumerate(textureFilepaths):
        textureFilename = textureInfo.file
        textureUvLayer = textureInfo.uvLayer
        try:
            textureBasename = os.path.basename(textureFilename)

            # load image
            imageFilepath = makeImageFilepath(textureBasename)
            imgTex = makeTexture(imageFilepath)

            textureSlot = newTextureSlot(materialData)
            textureSlot.texture = imgTex
            textureSlot.use = False

            if (me_ob.uv_layers):
                textureSlot.uv_layer = me_ob.uv_layers[textureUvLayer].name

            xps_material.textureSlot(rGroup, texIndex, materialData)
            print("Texture: " + textureSlot.name)

        except Exception as inst:
            print("Error loading " + textureBasename)
            print(traceback.format_exc())

            exc_type, exc_obj, exc_tb = sys.exc_info()
            fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
            print(exc_type, fname, exc_tb.tb_lineno)

            print(type(inst))  # the exception instance
            print(inst.args)  # arguments stored in .args
            print(inst)
            # If error loading texture, turn transparency off
            materialData.alpha = 1.0
            materialData.use_transparency = True
def makeNamesFromMesh(mesh):
    meshFullName = mesh.name
    renderType = xps_material.makeRenderType(meshFullName)
    meshName = renderType.meshName

    separatedMeshNames = []
    separatedMeshNames.append(meshFullName)

    materialsCount = len(mesh.data.materials)
    for mat_idx in range(1, materialsCount):
        partName = meshName + ".part." + "{0:03d}".format(mat_idx)
        renderType.meshName = partName
        fullName = xps_material.makeRenderTypeName(renderType)
        separatedMeshNames.append(fullName)
    return separatedMeshNames
Exemple #4
0
def makeNamesFromMesh(mesh):
    meshFullName = mesh.name
    renderType = xps_material.makeRenderType(meshFullName)
    meshName = renderType.meshName

    separatedMeshNames = []
    separatedMeshNames.append(meshFullName)

    materialsCount = len(mesh.data.materials)
    for mat_idx in range(1, materialsCount):
        partName = meshName + ".part." + "{0:03d}".format(mat_idx)
        renderType.meshName = partName
        fullName = xps_material.makeRenderTypeName(renderType)
        separatedMeshNames.append(fullName)
    return separatedMeshNames