"""Verify a final static FBX against its Studio GLB, using full scene transforms.""" import sys,json,math,hashlib from pathlib import Path import bpy import numpy as np from mathutils import Matrix sys.path.insert(0,str(Path(__file__).resolve().parent)) from bl_decimate import prepare_game_export,validate_fbx_yup_scene folder=Path(sys.argv[sys.argv.index('--')+1]).resolve() name=sys.argv[sys.argv.index('--')+2] source=folder/'model_ex.glb';target=folder/'static'/(name+'.fbx') out=folder/'axis_pipeline_audit';out.mkdir(parents=True,exist_ok=True) def load(path): bpy.ops.wm.read_factory_settings(use_empty=True) if path.suffix=='.fbx':bpy.ops.import_scene.fbx(filepath=str(path),use_anim=False) else:bpy.ops.import_scene.gltf(filepath=str(path),merge_vertices=False) meshes=[o for o in bpy.context.scene.objects if o.type=='MESH'] assert len(meshes)==1 return meshes[0] def uv(obj):return np.array([tuple(v.uv) for v in obj.data.uv_layers.active.data],dtype='