# 1. Rename all files to replace spaces with underscores and lowercase them
for f in *' '*.fbx *' '*.fbm; do
[ -e "$f" ] || continue
new_name=$(echo "$f" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')
mv "$f" "$new_name"
done
# 2. Convert all raw .fbx files to .glb
for f in *.fbx; do
[ -e "$f" ] || continue
base="${f%.fbx}"
fbx2gltf -i "$f" -b -o "${base}.glb"
done
# 3. Compress and optimize all .glb files using your pipeline
for f in *.glb; do
[[ "$f" == *"_clean.glb" ]] && continue
[ -e "$f" ] || continue
base="${f%.glb}"
echo "Optimizing $f to high-quality ${base}_clean.glb..."
gltf-transform resize "$f" "${base}_clean.glb" --width 512 --height 512 && \
gltf-transform prune "${base}_clean.glb" "${base}_clean.glb" && \
gltf-transform webp "${base}_clean.glb" "${base}_clean.glb" --slots baseColor && \
gltf-transform draco "${base}_clean.glb" "${base}_clean.glb" --quantize-position 11 --quantize-texcoord 12
done
# 2. Re-run your compression pipeline
for f in *.glb; do
[[ "$f" == *"_clean.glb" ]] && continue
[ -e "$f" ] || continue
base="${f%.glb}"
echo "Optimizing $f to high-quality ${base}_clean.glb..."
gltf-transform resize "$f" "${base}_clean.glb" --width 512 --height 512 && \
gltf-transform prune "${base}_clean.glb" "${base}_clean.glb" && \
gltf-transform webp "${base}_clean.glb" "${base}_clean.glb" --slots baseColor && \
gltf-transform draco "${base}_clean.glb" "${base}_clean.glb" --quantize-position 11 --quantize-texcoord 12
done
# 3. delete all beside _clean.glb
shopt -s extglob && rm -rf !(*_clean.glb)