Add kaiser filter parameters.

2.0
castano 17 years ago
parent 365ab33e61
commit fd9ae63a4f

@ -90,6 +90,10 @@ void InputOptions::reset()
m.maxLevel = -1;
m.mipmapFilter = MipmapFilter_Box;
m.kaiserWidth = 10;
m.kaiserAlpha = 8.0f;
m.kaiserStretch = 0.75f;
m.normalizeMipmaps = false;
m.convertToNormalMap = false;
m.heightFactors.set(0.0f, 0.0f, 0.0f, 1.0f);
@ -207,13 +211,20 @@ void InputOptions::setWrapMode(WrapMode mode)
/// Set mipmapping options.
void InputOptions::setMipmapping(bool generateMipmaps, MipmapFilter filter/*= MipmapFilter_Kaiser*/, int maxLevel/*= -1*/)
void InputOptions::setMipmapping(bool generateMipmaps, MipmapFilter filter/*= MipmapFilter_Box*/, int maxLevel/*= -1*/)
{
m.generateMipmaps = generateMipmaps;
m.mipmapFilter = filter;
m.maxLevel = maxLevel;
}
/// Set Kaiser filter parameters.
void InputOptions::setKaiserParameters(int width, float alpha, float stretch)
{
m.kaiserWidth = width;
m.kaiserAlpha = alpha;
m.kaiserStretch = stretch;
}
/// Set quantization options.
/// @warning Do not enable dithering unless you know what you are doing. Quantization

@ -68,7 +68,12 @@ namespace nvtt
bool generateMipmaps;
int maxLevel;
MipmapFilter mipmapFilter;
// Kaiser filter parameters.
uint kaiserWidth;
float kaiserAlpha;
float kaiserStretch;
// Normal map options.
bool normalMap;
bool normalizeMipmaps;

@ -331,8 +331,8 @@ static FloatImage * createMipmap(const FloatImage * floatImage, const InputOptio
}
else /*if (inputOptions.mipmapFilter == MipmapFilter_Kaiser)*/
{
Kernel1 kernel(10);
kernel.initKaiser(8.0, 0.75f);
Kernel1 kernel(inputOptions.kaiserWidth);
kernel.initKaiser(inputOptions.kaiserAlpha, inputOptions.kaiserStretch);
result = floatImage->downSample(kernel, (FloatImage::WrapMode)inputOptions.wrapMode);
}

@ -26,9 +26,6 @@
#include <nvcore/nvcore.h>
//#define HAVE_S3QUANT
//#define HAVE_ATITC
// Function linkage
#if NVTT_SHARED
#ifdef NVTT_EXPORTS
@ -173,8 +170,9 @@ namespace nvtt
NVTT_API void setWrapMode(WrapMode mode);
// Set mipmapping options.
NVTT_API void setMipmapping(bool generateMipmaps, MipmapFilter filter = MipmapFilter_Kaiser, int maxLevel = -1);
NVTT_API void setMipmapping(bool generateMipmaps, MipmapFilter filter = MipmapFilter_Box, int maxLevel = -1);
NVTT_API void setKaiserParameters(int width, float alpha, float stretch);
// Set quantization options.
NVTT_API void setQuantization(bool colorDithering, bool alphaDithering, bool binaryAlpha, int alphaThreshold = 127);

Loading…
Cancel
Save