2019-07-02 03:32:09 +00:00

66 lines
1.7 KiB
Bash

#!/bin/bash
# This script creates PVRTC textures from all of the PNG's.
# It will upscale to POT if needed and convert the image to 32 bit PNG.
# It also creates the list of filename's with scaling in scalefactors.txt
# The resulting TC2 or TC4 files should be copied to data/textures/pvr
# The scalefactors.txt should be copied to data/textures/pvr
powerof2 () {
# Get the original size of the image
W=`identify ../$f | cut -f 3 -d " " | sed s/x.*//`
H=`identify ../$f | cut -f 3 -d " " | sed s/.*x//`
# Determine the next power of 2 greater the original image size
P2W=`convert ../$f -format "%[fx:2^(ceil(log(w)/log(2)))]" info:`
P2H=`convert ../$f -format "%[fx:2^(ceil(log(h)/log(2)))]" info:`
if test $P2W -lt 32; then
P2W=32
fi
if test $P2H -lt 32; then
P2H=32
fi
# Calculate the ratio size increase
FACTOR_W=$(echo "scale=3; $W/$P2W" | bc -l )
FACTOR_H=$(echo "scale=3; $H/$P2H" | bc -l )
# Remove the file extentsion
FILENAME=${f%.*}
# Display and write the results to file
echo Width ${FILENAME} ${FACTOR_W} ${W} ${P2W}
echo Height ${FILENAME} ${FACTOR_H} ${H} ${P2W}
echo ${FILENAME} ${FACTOR_W} ${FACTOR_H} >> scalefactors.txt
}
rm scalefactors.txt
rm -rf tc2
rm -rf tc4
#rm -rf XRGB1555
rm -rf ../png32
mkdir tc2
mkdir tc4
#mkdir XRGB1555
mkdir ../png32
cd ..
for f in *.png
do
cd pvr
echo "Processing $f file..."
powerof2
convert ../$f -background transparent -extent ${P2W}x${P2H} PNG32:../png32/$f.png
./PVRTexTool -fPVRTC2 -i../png32/$f.png -o tc2/$f.pvr
./PVRTexTool -fPVRTC4 -i../png32/$f.png -o tc4/$f.pvr
# ./PVRTexTool -f1555 -i../png32/$f.png -o XRGB1555/$f.pvr
# mv XRGB1555/$f.pvr XRGB1555/$f.XRGB1555
cd ..
done