Download Lua/Dev/ArtDebug.lua from sirnii/myspace: direct link, hf CLI and curl.
- Browser
- Download file 1.96 kB
-
https://huggingface.co/spaces/sirnii/myspace/resolve/main/Lua/Dev/ArtDebug.lua
- Command line
-
hf download hf://spaces/sirnii/myspace/Lua/Dev/ArtDebug.lua
-
curl -L -o ArtDebug.lua https://huggingface.co/spaces/sirnii/myspace/resolve/main/Lua/Dev/ArtDebug.lua
1.96 kB
| function GetEntityMeshesMaterialsWithoutSSS(entity, required) | |
| local state_idx_name = {} | |
| for state_name, state_idx in pairs(EntityStates) do | |
| state_idx_name[state_idx] = state_name | |
| end | |
| local meshes_no_SSS, material_marked = {}, {} | |
| local mesh_states_map, mesh_lod_map = GetEntityMaterialsMap(entity) | |
| for mesh_name, mesh_states in pairs(mesh_states_map) do | |
| local lod = mesh_lod_map[mesh_name] | |
| for _, state_idx in ipairs(mesh_states) do | |
| local state_name = state_idx_name[state_idx] | |
| local material = GetStateMaterial(entity, state_name, lod) | |
| if material and not material_marked[material] then | |
| local num_sub_mtls = GetNumSubMaterials(material) | |
| local any, all = false, true | |
| for i = 1, num_sub_mtls do | |
| local mat_props = GetMaterialProperties(material, i - 1) | |
| if mat_props.SSS == 0 then | |
| all = false | |
| else | |
| any = true | |
| end | |
| end | |
| if required == "all" then | |
| if not all then | |
| table.insert(meshes_no_SSS, material) | |
| material_marked[material] = true | |
| end | |
| else--if required == "any" then | |
| if not any then | |
| table.insert(meshes_no_SSS, material) | |
| material_marked[material] = true | |
| end | |
| end | |
| end | |
| end | |
| end | |
| return next(meshes_no_SSS) and meshes_no_SSS | |
| end | |
| function GetHeadsTopsWithoutSSS() | |
| local classes = table.union(ClassDescendantsList("CharacterHead"), ClassDescendantsList("CharacterBody")) | |
| local entities = {} | |
| for _, class_name in ipairs(classes) do | |
| local class = g_Classes[class_name] | |
| local entity = class:GetEntity() or class.entity | |
| if IsValidEntity(entity) then | |
| table.insert(entities, entity) | |
| end | |
| end | |
| local meshes_no_SSS = {} | |
| for _, entity in ipairs(entities) do | |
| local meshes = GetEntityMeshesMaterialsWithoutSSS(entity, "any") | |
| if meshes then | |
| table.iappend(meshes_no_SSS, meshes) | |
| end | |
| end | |
| table.sort(meshes_no_SSS) | |
| print(string.format("Meshes with materials without SSS: %d", #meshes_no_SSS)) | |
| return meshes_no_SSS | |
| end |