Okay all here's how I fixed it.
When baking, use this
bakedModel = model.bake(TRSRTransformation.identity(), Attributes.DEFAULT_BAKED_FORMAT, textureGetterFlipV);
/* Credit to Eternal Energy */
public static Function<ResourceLocation, TextureAtlasSprite> textureGetterFlipV = new Function<ResourceLocation, TextureAtlasSprite>()
{
@Override
public TextureAtlasSprite apply(ResourceLocation location)
{
return DummyAtlasTextureFlipV.instance;
}
};
private static class DummyAtlasTextureFlipV extends TextureAtlasSprite
{
public static DummyAtlasTextureFlipV instance = new DummyAtlasTextureFlipV();
protected DummyAtlasTextureFlipV()
{
super("dummyFlipV");
}
@Override
public float getInterpolatedU(double u)
{
return (float)u / 16;
}
@Override
public float getInterpolatedV(double v)
{
return (float)v / -16;
}
}
and then DO use bindTexture on your texture file. thanks all.