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