: ${del_src:=false}
: ${git_src_repo:=}
: ${dds_noalpha:=dxt1}
-: ${dds_prealpha:=dxt2 dxt4}
-: ${dds_sepalpha:=dxt3 dxt5}
+: ${dds_prealpha:=dxt1 dxt2 dxt4}
+: ${dds_sepalpha:=dxt1 dxt3 dxt5}
selfprofile_t0=`date +%s`
selfprofile_step=init
;;
esac
- # configure S2TC
+ # Specific hacks for normalmaps.
case "$f" in
./maps/*/lm_[0-9][0-9][0-9][13579]) # deluxemap
export S2TC_COLORDIST_MODE=NORMALMAP
export S2TC_RANDOM_COLORS=256
export S2TC_REFINE_COLORS=LOOP
export S2TC_DITHER_MODE=NONE
+ # Engine ignores alpha channel on these, so we can use the DXT1 black encoding.
+ # Not that that color should happen very often on a deluxemap, but who knows.
+ # NOT renormalizing, as DP does its own renormalization anyway in the GLSL shader
+ # and crunch's renormalizing looks like it can cause banding artifacts.
+ export CRUNCH_TEXTYPEFLAGS='-gamma 1.0 -uniformMetrics -usetransparentindicesforblack'
;;
*_norm)
export S2TC_COLORDIST_MODE=NORMALMAP
export S2TC_RANDOM_COLORS=256
export S2TC_REFINE_COLORS=LOOP
export S2TC_DITHER_MODE=NONE
+ # Alpha channel here means height.
+ # NOT renormalizing, as DP does its own renormalization anyway in the GLSL shader
+ # and crunch's renormalizing looks like it can cause banding artifacts.
+ export CRUNCH_TEXTYPEFLAGS='-gamma 1.0 -uniformMetrics'
;;
*)
export S2TC_COLORDIST_MODE=SRGB_MIXED
export S2TC_RANDOM_COLORS=64
export S2TC_REFINE_COLORS=LOOP
export S2TC_DITHER_MODE=FLOYDSTEINBERG
+ # Color channel-like images - consider as sRGB.
+ export CRUNCH_TEXTYPEFLAGS='-gamma 2.2'
;;
esac