예제 #1
0
    def ApplyMaterials(self, entity, component):
        if component.renderObject is None:
            return
        placeableRes = component.renderObject.placeableRes
        if placeableRes is None:
            return
        if placeableRes.visualModel is None:
            return
        isLoading = False
        for m in placeableRes.visualModel.meshes:
            if m.geometry is not None and not m.geometry.isGood:
                isLoading = True
                break

        if isLoading:
            trinity.WaitForResourceLoads()
        if component.minSpecOverideMetaMaterialPath is not None and component.minSpecOverideMetaMaterialPath != 'None' and sm.GetService(
                'device').GetAppFeatureState(
                    'Interior.lowSpecMaterialsEnabled', False):
            materialRes = metaMaterials.LoadMaterialRes(
                component.minSpecOverideMetaMaterialPath)
            metaMaterials.ApplyMaterialRes(component.renderObject, materialRes)
        elif component.overrideMetaMaterialPath is not None and component.minSpecOverideMetaMaterialPath != 'None':
            materialRes = metaMaterials.LoadMaterialRes(
                component.overrideMetaMaterialPath)
            metaMaterials.ApplyMaterialRes(component.renderObject, materialRes)
        else:
            metaMaterials.LoadAndApplyMaterialRes(component.renderObject)
예제 #2
0
def AddPrepassAreasToDynamic(dynamic):
    meshes = Materials.GetMeshList(dynamic)
    if not meshes:
        return
    for mesh in meshes:
        AddPrepassAreasToStandardMesh(mesh)

    if ENABLE_MATERIAL_RES_SUPPORT:
        materialRes = Materials.LoadMaterialResFromObject(dynamic)
        Materials.ApplyMaterialRes(dynamic, materialRes)
    if hasattr(dynamic, 'clothMeshes'):
        ApexClothingActorFixup(dynamic)
예제 #3
0
def AddPrepassAreasToStatic(static):
    if static.displayTargetMesh:
        mesh = trinity.Tr2Mesh()
        mesh.name = 'EnlightenAreas'
        mesh.geometryResPath = static.geometryResPath
        static.detailMeshes.append(mesh)
        for area in static.enlightenAreas:
            newArea = trinity.Tr2MeshArea()
            newArea.name = area.name
            newArea.index = area.index
            newArea.count = area.count
            newArea.effect = area.effect
            mesh.opaqueAreas.append(newArea)
            area.effect = None

        static.detailMeshes.append(mesh)
    for mesh in static.detailMeshes:
        AddPrepassAreasToStandardMesh(mesh)

    if ENABLE_MATERIAL_RES_SUPPORT:
        materialRes = Materials.LoadMaterialResFromObject(static)
        Materials.ApplyMaterialRes(static, materialRes)