diff --git a/src/doc/maketx.rst b/src/doc/maketx.rst index c30aeff554..4772143388 100644 --- a/src/doc/maketx.rst +++ b/src/doc/maketx.rst @@ -162,6 +162,12 @@ Command-line arguments are: images that are compatible with both OIIO and other texturing systems that require power-of-2 textures. +.. option:: --keepaspect + + Sets the `PixelAspectRatio` metadata to the input image aspect ratio, + allowing compatible viewers to display the output in the original aspect + ratio even if `--resize` is used. + .. option:: --filter By default, the resizing step that generates successive MIP levels uses @@ -344,13 +350,13 @@ Command-line arguments are: settings on the command line or in the input texture. Specifically, this option sets the tile size (to 64x64 for 8 bit, 64x32 - for 16 bit integer, and 32x32 for float or `half` images), uses + for 16 bit integer, and 32x32 for `float` or `half` images), uses "separate" planar configuration (`--separate`), and sets PRMan-specific metadata (`--prman-metadata`). It also outputs sint16 textures if uint16 is requested (because PRMan for some reason does not accept true uint16 textures), and in the case of TIFF files will omit the Exif directory block which will not be recognized by the older version of - libtiff used by PRMan. + libtiff used by PRMan versions <= 26. OpenImageIO will happily accept textures that conform to PRMan's expectations, but not vice versa. But OpenImageIO's TextureSystem has @@ -471,6 +477,38 @@ Command-line arguments are: (This option was added for OpenImageIO 2.3.) +.. option:: --slopefilter + + Used in conjunction with `--bumpslopes`, this sets the filter for computing + the slopes when `--bumpformat` is set to "height". The default value is + "sobel". The option "centraldiff" matches the behavior of `txmake` and is + less prone to ring-shaped artifacting. + +.. option:: --bumpinverts + + Used in conjunction with `--bumpslopes`, this inverts the computed slopes + on the s/u/x direction. + +.. option:: --bumpinvertt + + Used in conjunction with `--bumpslopes`, this inverts the computed slopes + on the t/u/y direction. + +.. option:: --bumpscale + + Used in conjunction with `--bumpslopes`, this scales the strength of the + resulting bumpslopes map. + +.. option:: --bumprange + + Used in conjunction with `--bumpslopes`, this sets the convention used for + normal map data when `--bumpformat` is set to "normal". When set to + "centered", the normals data is assumed to exist on the range + :math:`[-1,1]`. When set to "positive", the normals data is assumed to + exist on the range :math:`[0,1]`. When set to "auto", the default value, + the range is inferred based on whether or not negative values are present + in the input image. + .. option:: --cdf --cdfsigma --cdfbits diff --git a/src/doc/oiiotool.rst b/src/doc/oiiotool.rst index 9732d0af31..778367f4ac 100644 --- a/src/doc/oiiotool.rst +++ b/src/doc/oiiotool.rst @@ -1529,6 +1529,9 @@ Writing images `:resize=` *int* If nonzero, resize to a power of 2 before starting to create the MIPpmap levels. (default: 0) + `:keepaspect=` *int* + If nonzero, add metadata to maintain the image aspect ratio even when + `resize=1`. (default: 0) `:nomipmap=` *int* If nonzero, do not create MIP-map levels at all. (default: 0) `:updatemode=` *int* @@ -1572,6 +1575,20 @@ Writing images `:uvslopes_scale=` *float* For `-obump` only, specifies the amount to scale the bump-map slopes by. (default: 0.0, meaning not to use this feature) + `:slopefilter=` *string* + For `-obump` only, specifies the filter to use for slope computation + when `bumpformat=height`. (default: sobel) + `:bumpinverts=` *int* + For `-obump` only, inverts slopes on the s/u/x direction. (default: 0) + `:bumpinvertt=` *int* + For `-obump` only, inverts slopes on the t/v/y direction. (default: 0) + `:bumpscale=` *float* + For `-obump` only, scales the strength of the resulting map. (default: + 1.0) + `:bumprange=` *string* + For `obump` only, specifies the normal data convention when + `bumpformat=normal` as one of `centered`, `positive`, `auto`. + (default: auto) `:cdf=` *int* If nonzero, will add to the texture metadata the forward and inverse Gaussian CDF, which can be used by shaders to implement diff --git a/src/include/OpenImageIO/imagebufalgo.h b/src/include/OpenImageIO/imagebufalgo.h index d191a94510..5f8063ccfc 100644 --- a/src/include/OpenImageIO/imagebufalgo.h +++ b/src/include/OpenImageIO/imagebufalgo.h @@ -2252,6 +2252,7 @@ enum MakeTextureMode { /// - `maketx:verbose` (int) : How much detail should go to outstream (0). /// - `maketx:runstats` (int) : If nonzero, print run stats to outstream (0). /// - `maketx:resize` (int) : If nonzero, resize to power of 2. (0) +/// - `maketx:keepaspect` (int): If nonzero, save aspect ratio to metadata. (0) /// - `maketx:nomipmap` (int) : If nonzero, only output the top MIP level (0). /// - `maketx:updatemode` (int) : If nonzero, write new output only if the /// output file doesn't already exist, or is @@ -2372,6 +2373,36 @@ enum MakeTextureMode { /// factor. The default is 0, disabling the /// feature. If you use this feature, a suggested /// value is 256. +/// - `maketx:slopefilter` (string) : +/// When used in MakeTxBumpWithSlopes mode, this +/// sets the filter for computing the slopes when +/// `--bumpformat` is set to "height". The default +/// value is "sobel". The option "centraldiff" +/// matches the behavior of `txmake` and is less +/// prone to ring-shaped artifacting. (sobel) +/// - `maketx:bumpinverts` (int) : +/// When used in MakeTxBumpWithSlopes mode, a +/// non-zero value inverts the computed slopes on the +/// s/u/x direction. (0) +/// - `maketx:bumpinvertt` (int) : +/// When used in MakeTxBumpWithSlopes mode, a +/// non-zero value inverts the computed slopes on the +/// t/v/y direction. (0) +/// - `maketx:bumpscale` (float) : +/// When used in MakeTxBumpWithSlopes mode, this +/// scales the strength of the resulting bumpslopes +/// map. (1.0) +/// - `maketx:bumprange` (string) : +/// When used in MakeTxBumpWithSlopes mode, this +/// sets the convention used for normal map data when +/// `--bumpformat` is set to "normal". When set to +/// "centered", the normals data is assumed to exist +/// on the range [-1,1]. When set to "positive", the +/// normals data is assumed to exist on the range +/// [0,1]. When set to "auto", the default value, the +/// range is inferred based on whether or not +/// negative values are present in the input image. +/// (auto) /// - `maketx:cdf` (int) : /// If nonzero, will write a Gaussian CDF and /// Inverse Gaussian CDF as per-channel metadata diff --git a/src/libOpenImageIO/maketexture.cpp b/src/libOpenImageIO/maketexture.cpp index 0e42ab92e7..21e1b85b21 100644 --- a/src/libOpenImageIO/maketexture.cpp +++ b/src/libOpenImageIO/maketexture.cpp @@ -69,7 +69,8 @@ setup_filter(const ImageSpec& dstspec, const ImageSpec& srcspec, static TypeDesc -set_prman_options(TypeDesc out_dataformat, ImageSpec& configspec) +set_prman_options(TypeDesc out_dataformat, ImageSpec& configspec, + bool is_bumpslopes) { // Force separate planar image handling, and also emit prman metadata configspec.attribute("planarconfig", "separate"); @@ -98,6 +99,8 @@ set_prman_options(TypeDesc out_dataformat, ImageSpec& configspec) // specifying -half or -float make 32x32 tile size if (out_dataformat == TypeDesc::DOUBLE) out_dataformat = TypeDesc::FLOAT; + if (is_bumpslopes && !out_dataformat.is_floating_point()) + out_dataformat = TypeDesc::FLOAT; if (out_dataformat == TypeDesc::HALF || out_dataformat == TypeDesc::FLOAT) { configspec.tile_width = 32; configspec.tile_height = 32; @@ -411,39 +414,53 @@ lightprobe_to_envlatl(ImageBuf& dst, const ImageBuf& src, bool y_is_up, +struct SlopeFilter { + float ds[9]; + float dt[9]; + float total; +}; + +static constexpr SlopeFilter sobel { + { -1.0f, 0.0f, 1.0f, -2.0f, 0.0f, 2.0f, -1.0f, 0.0f, 1.0f }, + { -1.0f, -2.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 2.0f, 1.0f }, + 8.0f +}; + +static constexpr SlopeFilter centraldiff { + { 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f }, + 2.0f +}; + // compute slopes in pixel space using a Sobel gradient filter -template +template static void -sobel_gradient(const ImageBuf& src, const ImageBuf::Iterator& dstpix, +slope_gradient(const ImageBuf& src, const ImageBuf::Iterator& dstpix, float* h, float* dh_ds, float* dh_dt) { - static const float sobelweight_ds[9] = { -1.0f, 0.0f, 1.0f, -2.0f, 0.0f, - 2.0f, -1.0f, 0.0f, 1.0f }; - static const float sobelweight_dt[9] = { -1.0f, -2.0f, -1.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 2.0f, 1.0f }; - *dh_ds = *dh_dt = 0.0f; ImageBuf::ConstIterator srcpix(src, dstpix.x() - 1, dstpix.x() + 2, dstpix.y() - 1, dstpix.y() + 2, 0, 1, ImageBuf::WrapClamp); for (int i = 0; !srcpix.done(); ++srcpix, ++i) { - // accumulate to dh_ds and dh_dt using corresponding sobel 3x3 weights + // accumulate to dh_ds and dh_dt using corresponding 3x3 gradient weights float srcval = srcpix[0]; - *dh_ds += sobelweight_ds[i] * srcval; - *dh_dt += sobelweight_dt[i] * srcval; + *dh_ds += filter.ds[i] * srcval; + *dh_dt += filter.dt[i] * srcval; if (i == 4) *h = srcval; } - *dh_ds = *dh_ds / 8.0f; // sobel normalization - *dh_dt = *dh_dt / 8.0f; + *dh_ds = *dh_ds / filter.total; // normalization + *dh_dt = *dh_dt / filter.total; } // compute slopes from normal in s,t space // Note: because we use getpixel(), it works for all src pixel types. +template static void normal_gradient(const ImageBuf& src, const ImageBuf::Iterator& dstpix, float* h, float* dh_ds, float* dh_dt) @@ -451,6 +468,13 @@ normal_gradient(const ImageBuf& src, const ImageBuf::Iterator& dstpix, // assume a normal defined in the tangent space float n[3]; src.getpixel(dstpix.x(), dstpix.y(), make_span(n)); + + if (!is_centered) { // pixel data is on [0,1] instead of [-1,1] + n[0] -= 0.5f; + n[1] -= 0.5f; + n[2] -= 0.5f; + } + *h = -1.0f; *dh_ds = -n[0] / n[2]; *dh_dt = -n[1] / n[2]; @@ -461,8 +485,10 @@ normal_gradient(const ImageBuf& src, const ImageBuf::Iterator& dstpix, template static bool bump_to_bumpslopes(ImageBuf& dst, const ImageBuf& src, - const ImageSpec& configspec, std::ostream& outstream, - ROI roi = ROI::All(), int nthreads = 0) + const ImageSpec& configspec, + const ImageBufAlgo::PixelStats& pixel_stats, + std::ostream& outstream, ROI roi = ROI::All(), + int nthreads = 0) { if (!dst.initialized() || dst.nchannels() != 6 || dst.spec().format != TypeDesc::FLOAT) @@ -472,42 +498,80 @@ bump_to_bumpslopes(ImageBuf& dst, const ImageBuf& src, void (*bump_filter)(const ImageBuf&, const ImageBuf::Iterator&, float*, float*, float*); - bump_filter = &sobel_gradient; - - float res_x = 1.0f; - float res_y = 1.0f; - string_view bumpformat = configspec.get_string_attribute( "maketx:bumpformat"); + bool is_height; // true => height, false => normal if (Strutil::iequals(bumpformat, "height")) - bump_filter = &sobel_gradient< - SRCTYPE>; // default one considering height value in channel 0 + is_height = true; else if (Strutil::iequals(bumpformat, "normal")) { if (src.spec().nchannels < 3) { outstream << "maketx ERROR: normal map requires 3 channels input map.\n"; return false; } - bump_filter = &normal_gradient; + is_height = false; } else if (Strutil::iequals( bumpformat, "auto")) { // guess input bump format by analyzing channel count and component if (src.spec().nchannels > 2 && !ImageBufAlgo::isMonochrome(src)) // maybe it's a normal map? - bump_filter = &normal_gradient; + is_height = false; + else + is_height = true; } else { outstream << "maketx ERROR: Unknown input bump format " << bumpformat << ". Valid formats are height, normal or auto\n"; return false; } - float uv_scale = configspec.get_float_attribute( + string_view slopefilter = configspec.get_string_attribute( + "maketx:slopefilter"); + string_view bumprange = configspec.get_string_attribute("maketx:bumprange"); + + if (is_height) { + if (Strutil::iequals(slopefilter, "sobel")) // default + bump_filter = &slope_gradient; + else if (Strutil::iequals(slopefilter, "centraldiff")) + bump_filter = &slope_gradient; + else { + outstream << "maketx ERROR: Unknown input slope kernel " + << slopefilter + << ". Valid kernels are sobel, centraldiff\n"; + return false; + } + } else { // is normal map + if (Strutil::iequals(bumprange, "centered")) + bump_filter = &normal_gradient; + else if (Strutil::iequals(bumprange, "positive")) + bump_filter = &normal_gradient; + else if (Strutil::iequals(bumprange, "auto")) { + if (!src.spec().format.is_signed()) + bump_filter = &normal_gradient; + else { // check if there are negative values in the image + float min_val = *std::min_element(std::begin(pixel_stats.min), + std::end(pixel_stats.min)); + if (min_val < 0.0f) + bump_filter = &normal_gradient; + else + bump_filter = &normal_gradient; + } + } else { + outstream << "maketx ERROR: Unknown input bump range " << bumprange + << ". Valid ranges are centered, positive, auto\n"; + return false; + } + } + + float res_x = 1.0f; + float res_y = 1.0f; + + const float uv_scale = configspec.get_float_attribute( "maketx:uvslopes_scale", configspec.get_float_attribute("uvslopes_scale")); // If the input is an height map, does the derivatives needs to be UV normalized and scaled? - if (bump_filter == &sobel_gradient && uv_scale != 0) { + if (is_height && uv_scale != 0) { if (uv_scale < 0) { outstream << "maketx ERROR: Invalid uvslopes_scale value. The value must be >=0.\n"; @@ -519,6 +583,13 @@ bump_to_bumpslopes(ImageBuf& dst, const ImageBuf& src, res_y = (float)src.spec().height / uv_scale; } + const float scale = configspec.get_float_attribute("maketx:bumpscale", + 1.0f); + const bool inverts = configspec.get_int_attribute("maketx:bumpinverts") + != 0; + const bool invertt = configspec.get_int_attribute("maketx:bumpinvertt") + != 0; + ImageBufAlgo::parallel_image(roi, nthreads, [&](ROI roi) { // iterate on destination image for (ImageBuf::Iterator d(dst, roi); !d.done(); ++d) { @@ -526,6 +597,11 @@ bump_to_bumpslopes(ImageBuf& dst, const ImageBuf& src, float dhds; float dhdt; bump_filter(src, d, &h, &dhds, &dhdt); + + // scale/invert + dhds *= scale * (inverts ? -1.0f : 1.0f); + dhdt *= scale * (invertt ? -1.0f : 1.0f); + // h = height or h = -1.0f if a normal map d[0] = h; // first moments @@ -1135,11 +1211,14 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, if (configspec.format != TypeDesc::UNKNOWN) out_dataformat = configspec.format; + const bool is_bumpslopes = (mode == ImageBufAlgo::MakeTxBumpWithSlopes); + // We cannot compute the prman / oiio options until after out_dataformat // has been determined, as it's required (and can potentially change // out_dataformat too!) if (configspec.get_int_attribute("maketx:prman_options")) - out_dataformat = set_prman_options(out_dataformat, configspec); + out_dataformat = set_prman_options(out_dataformat, configspec, + is_bumpslopes); else if (configspec.get_int_attribute("maketx:oiio_options")) out_dataformat = set_oiio_options(out_dataformat, configspec); @@ -1165,6 +1244,7 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, stat_readtime += alltime.lap(); STATUS(Strutil::fmt::format("read \"{}\"", src->name()), stat_readtime); + if (mode == ImageBufAlgo::MakeTxEnvLatlFromLightProbe) { ImageSpec newspec = src->spec(); newspec.width = newspec.full_width = src->spec().width; @@ -1184,8 +1264,13 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, src = latlong; } - const bool is_bumpslopes = (mode == ImageBufAlgo::MakeTxBumpWithSlopes); if (is_bumpslopes) { + ImageBufAlgo::PixelStats src_pixel_stats; + if (Strutil::iequals(configspec.get_string_attribute("maketx:bumprange", + "auto"), + "auto")) + src_pixel_stats = ImageBufAlgo::computePixelStats(*src); + ImageSpec newspec = src->spec(); newspec.tile_width = newspec.tile_height = 0; newspec.set_format(TypeDesc::FLOAT); @@ -1201,7 +1286,7 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, bool ok; OIIO_DISPATCH_COMMON_TYPES(ok, "bump_to_bumpslopes", bump_to_bumpslopes, src->spec().format, *bumpslopes, *src, - configspec, outstream); + configspec, src_pixel_stats, outstream); // bump_to_bumpslopes(*bumpslopes, *src); mode = ImageBufAlgo::MakeTxTexture; src = bumpslopes; @@ -1816,6 +1901,9 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, if (configspec.get_int_attribute("maketx:highlightcomp", 0)) addlHashData << "highlightcomp=1 "; + if (configspec.get_int_attribute("maketx:keepaspect", 0)) + addlHashData << "keepaspect=1 "; + const int sha1_blocksize = 256; std::string hash_digest = configspec.get_int_attribute("maketx:hash", 1) @@ -1886,9 +1974,14 @@ make_texture_impl(ImageBufAlgo::MakeTextureMode mode, const ImageBuf* input, dstspec.attribute("ImageDescription", desc); } + float aspect_ratio = float(srcspec.full_width) / float(srcspec.full_height); + if (configspec.get_float_attribute("fovcot") == 0.0f) { - configspec.attribute("fovcot", float(srcspec.full_width) - / float(srcspec.full_height)); + configspec.attribute("fovcot", aspect_ratio); + } + + if (configspec.get_int_attribute("maketx:keepaspect")) { + configspec.attribute("PixelAspectRatio", aspect_ratio); } maketx_merge_spec(dstspec, configspec); diff --git a/src/maketx/maketx.cpp b/src/maketx/maketx.cpp index 04a4b77fe2..d48eed8f6c 100644 --- a/src/maketx/maketx.cpp +++ b/src/maketx/maketx.cpp @@ -165,7 +165,8 @@ getargs(int argc, char* argv[], ImageSpec& configspec) std::string wrap = "black"; std::string swrap; std::string twrap; - bool doresize = false; + bool doresize = false; + bool keepaspect = false; Imath::M44f Mcam(0.0f), Mscr(0.0f), MNDC(0.0f); // Initialize to 0 bool separate = false; bool nomipmap = false; @@ -181,6 +182,9 @@ getargs(int argc, char* argv[], ImageSpec& configspec) bool unpremult = false; bool sansattrib = false; float sharpen = 0.0f; + float bumpscale = 1.0f; + bool bumpinverts = false; + bool bumpinvertt = false; float uvslopes_scale = 0.0f; bool cdf = false; float cdfsigma = 1.0f / 6; @@ -196,7 +200,9 @@ getargs(int argc, char* argv[], ImageSpec& configspec) std::string outcolorspace; std::string colorconfigname; std::string channelnames; - std::string bumpformat = "auto"; + std::string bumpformat = "auto"; + std::string slopefilter = "sobel"; + std::string bumprange = "auto"; std::string handed; std::vector string_attrib_names, string_attrib_values; std::vector any_attrib_names, any_attrib_values; @@ -244,6 +250,8 @@ getargs(int argc, char* argv[], ImageSpec& configspec) .help("Specific t wrap mode separately"); ap.arg("--resize", &doresize) .help("Resize textures to power of 2 (default: no)"); + ap.arg("--keepaspect", &keepaspect) + .help("Keep the texture aspect ratio when resizing to power of 2"); ap.arg("--filter %s:FILTERNAME", &filtername) .help(filter_help_string()); ap.arg("--hicomp", &do_highlight_compensation) @@ -324,6 +332,16 @@ getargs(int argc, char* argv[], ImageSpec& configspec) ap.arg("--bumpformat %s:NAME", &bumpformat) .help("Specify the interpretation of a 3-channel input image for --bumpslopes: \"height\", \"normal\" or \"auto\" (default)."); // "--envcube", &envcubemode, "Create cubic env map (file order: px, nx, py, ny, pz, nz) (UNIMP)", + ap.arg("--bumpscale %f:N", &bumpscale) + .help("Set the scale factor for the bump-slope map. The default is 1.0"); + ap.arg("--bumpinverts", &bumpinverts) + .help("Invert the bump-slope map in the s (u) direction."); + ap.arg("--bumpinvertt", &bumpinvertt) + .help("Invert the bump-slope map in the t (v) direction."); + ap.arg("--slopefilter %s:FILTER", &slopefilter) + .help("Specify the filter used to calculate the slope of a height map: \"sobel\" (default), \"centraldiff\" (matches txmake behavior)."); + ap.arg("--bumprange %s:RANGE", &bumprange) + .help("Specify the expected range of values for the input normal map: \"centered\" from [-1,1], \"positive\" from [0,1] (traditional blue-ish normal map), \"auto\" will select this based off of the presence of negative values."); ap.arg("--handed %s:STRING", &handed) .help("Specify the handedness of a vector or normal map: \"left\", \"right\", or \"\" (default)."); @@ -423,6 +441,7 @@ getargs(int argc, char* argv[], ImageSpec& configspec) configspec.attribute("maketx:verbose", verbose); configspec.attribute("maketx:runstats", runstats); configspec.attribute("maketx:resize", doresize); + configspec.attribute("maketx:keepaspect", keepaspect); configspec.attribute("maketx:nomipmap", nomipmap); configspec.attribute("maketx:updatemode", updatemode); configspec.attribute("maketx:constant_color_detect", constant_color_detect); @@ -450,8 +469,14 @@ getargs(int argc, char* argv[], ImageSpec& configspec) configspec.attribute("maketx:prman_options", prman); if (mipimages.size()) configspec.attribute("maketx:mipimages", Strutil::join(mipimages, ";")); - if (bumpslopesmode) + if (bumpslopesmode) { + configspec.attribute("maketx:bumpscale", bumpscale); + configspec.attribute("maketx:bumpinverts", bumpinverts); + configspec.attribute("maketx:bumpinvertt", bumpinvertt); + configspec.attribute("maketx:slopefilter", slopefilter); + configspec.attribute("maketx:bumprange", bumprange); configspec.attribute("maketx:bumpformat", bumpformat); + } if (handed.size()) configspec.attribute("handed", handed); configspec.attribute("maketx:cdf", cdf); diff --git a/src/oiiotool/oiiotool.cpp b/src/oiiotool/oiiotool.cpp index cb9cbaa0ef..3069bd9ac4 100644 --- a/src/oiiotool/oiiotool.cpp +++ b/src/oiiotool/oiiotool.cpp @@ -5421,6 +5421,8 @@ prep_texture_config(Oiiotool& ot, ImageSpec& configspec, configspec.attribute("maketx:verbose", ot.verbose); configspec.attribute("maketx:runstats", ot.runstats); configspec.attribute("maketx:resize", fileoptions.get_int("resize")); + configspec.attribute("maketx:keepaspect", + fileoptions.get_int("keepaspect")); configspec.attribute("maketx:nomipmap", fileoptions.get_int("nomipmap")); configspec.attribute("maketx:updatemode", fileoptions.get_int("updatemode")); @@ -5461,6 +5463,16 @@ prep_texture_config(Oiiotool& ot, ImageSpec& configspec, "prman_options", fileoptions.get_string("prman"))); configspec.attribute("maketx:bumpformat", fileoptions.get_string("bumpformat", "auto")); + configspec.attribute("maketx:bumpscale", + fileoptions.get_float("bumpscale", 1.0f)); + configspec.attribute("maketx:bumpinverts", + fileoptions.get_int("bumpinverts")); + configspec.attribute("maketx:bumpinvertt", + fileoptions.get_int("bumpinvertt")); + configspec.attribute("maketx:slopefilter", + fileoptions.get_string("slopefilter", "sobel")); + configspec.attribute("maketx:bumprange", + fileoptions.get_string("bumprange", "auto")); configspec.attribute("maketx:uvslopes_scale", fileoptions.get_float("uvslopes_scale", 0.0f)); if (fileoptions.contains("handed")) @@ -6656,7 +6668,7 @@ Oiiotool::getargs(int argc, char* argv[]) .help("Output the current image as a latlong env map") .OTACTION(output_file); ap.arg("-obump %s:FILENAME") - .help("Output the current bump texture map as a 6 channels texture including the first and second moment of the bump slopes (options: bumpformat=height|normal|auto, uvslopes_scale=val>=0)") + .help("Output the current bump texture map as a 6 channels texture including the first and second moment of the bump slopes (options: bumpformat=height|normal|auto, uvslopes_scale=val>=0, bumpscale=%f, bumpinverts=false, bumpinvertt=false, slopefilter=sobel|centraldiff, bumprange=centered|positive|auto)") .OTACTION(output_file); ap.separator("Options that affect subsequent image output:"); diff --git a/testsuite/maketx/ref/bumpslope-central.exr b/testsuite/maketx/ref/bumpslope-central.exr new file mode 100644 index 0000000000..49422da1cf Binary files /dev/null and b/testsuite/maketx/ref/bumpslope-central.exr differ diff --git a/testsuite/maketx/ref/bumpslope-normal.exr b/testsuite/maketx/ref/bumpslope-normal.exr new file mode 100644 index 0000000000..ac05568b2a Binary files /dev/null and b/testsuite/maketx/ref/bumpslope-normal.exr differ diff --git a/testsuite/maketx/ref/out-alt.txt b/testsuite/maketx/ref/out-alt.txt new file mode 100644 index 0000000000..44f5dc6636 --- /dev/null +++ b/testsuite/maketx/ref/out-alt.txt @@ -0,0 +1,803 @@ +Reading grid.tx +grid.tx : 1000 x 1000, 4 channel, uint8 tiff + MIP-map levels: 1000x1000 500x500 250x250 125x125 62x62 31x31 15x15 7x7 3x3 1x1 + SHA-1: 97D6548FF9E9BFD21424B773B1D84FACDF0C1797 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + DocumentName: "g.tif" + fovcot: 1 + Orientation: 1 (normal) + PixelAspectRatio: 1 + planarconfig: "contig" + ResolutionUnit: "in" + textureformat: "Plain Texture" + wrapmodes: "black,black" + XResolution: 72 + YResolution: 72 + oiio:AverageColor: "0.608983,0.608434,0.608728,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "9B24D4CC05313A43973AC384718D81D19183B691" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker.tx +checker.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +maketx: no update required for "checker.tx" +Reading checker.tx +checker.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading grid-resize.tx +grid-resize.tx : 1024 x 1024, 4 channel, uint8 tiff + MIP-map levels: 1024x1024 512x512 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1DAB274639828223059FDBC0E30BD569C07B66C0 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + DocumentName: "g.tif" + fovcot: 1 + Orientation: 1 (normal) + PixelAspectRatio: 1 + planarconfig: "contig" + ResolutionUnit: "in" + textureformat: "Plain Texture" + wrapmodes: "black,black" + XResolution: 72 + YResolution: 72 + oiio:AverageColor: "0.608983,0.608434,0.608728,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "2E23E9B4C6E707427A73B5433B23104D4183724E" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading tahoe-resize.tx +tahoe-resize.tx : 512 x 512, 3 channel, uint8 tiff + MIP-map levels: 512x512 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: B6A04E868C51C6ABB661C0F6BAA8AD974ECDFC5C + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1.33333 + Orientation: 1 (normal) + PixelAspectRatio: 1.33333 + planarconfig: "contig" + ResolutionUnit: "in" + textureformat: "Plain Texture" + wrapmodes: "black,black" + XResolution: 72 + YResolution: 96 + oiio:AverageColor: "0.101931,0.216697,0.425473" + oiio:BitsPerSample: 8 + oiio:SHA-1: "799C1441E4B45378165DE450828109AF330A3F87" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-uint16.tx +checker-uint16.tx : 128 x 128, 4 channel, uint16 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 75BCACCE72A4275AD11FAF4A5D328C624DFF69AB + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 16 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-1chan.tx +checker-1chan.tx : 128 x 128, 1 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: F7DAC8772B7C6BFABDA884D61ABC84844C949AF1 + channel list: Y + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5" + oiio:BitsPerSample: 8 + oiio:SHA-1: "1D0A2254373A69C054C08672041FC7DE3BAE5179" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 1 + tiff:PlanarConfiguration: 1 +Reading checker-16x32tile.tx +checker-16x32tile.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 16 x 32 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-seplzw.tx +checker-seplzw.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "lzw" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "separate" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 5 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 2 +Reading checker-clamp.tx +checker-clamp.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "clamp,clamp" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-permir.tx +checker-permir.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "periodic,mirror" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-nomip.tx +checker-nomip.tx : 128 x 128, 4 channel, uint8 tiff + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-camera.tx +checker-camera.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + worldtocamera: 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 + worldtoscreen: 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 1, 2, 3, 1 + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-opaque.tx +checker-opaque.tx : 128 x 128, 3 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 6827D9ED3A5674C1FAB56F96E5D7D06796D43144 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5" + oiio:BitsPerSample: 8 + oiio:SHA-1: "2BE3743A64D4309645F94CA7B37D0CD08AF0B38E" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading gray-mono.tx +gray-mono.tx : 256 x 256, 1 channel, uint8 tiff + MIP-map levels: 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: F5C1F9FA963006D501B14542F5E941AEDB4C5907 + channel list: Y + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.25098" + oiio:BitsPerSample: 8 + oiio:ConstantColor: "0.25098" + oiio:SHA-1: "24049CDF337F17E162291C7B626E0588A9D71160" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 1 + tiff:PlanarConfiguration: 1 +Reading pink-mono.tx +pink-mono.tx : 256 x 256, 3 channel, uint8 tiff + MIP-map levels: 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: D781FABF7CF958AE9D9429255C8591C77BAA9917 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.25098,0.2,0.14902" + oiio:BitsPerSample: 8 + oiio:ConstantColor: "0.25098,0.2,0.14902" + oiio:SHA-1: "41B1A0D1C1EBB4CEEBC7BCEE2CAB2AAAB4139724" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading checker-prman.tx +checker-prman.tx : 128 x 128, 4 channel, int16 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: DE42A8468161DA333BABF1BEB60811EA0FEF6534 + channel list: R, G, B, A + tile size: 64 x 32 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "separate" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 16 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 2 +make_texture ERROR: maketx ERROR: Nan/Inf at 2 pixels +make_texture ERROR: maketx ERROR: Nan/Inf at 2 pixels +Reading nan.exr +nan.exr : 64 x 64, 3 channel, half openexr + SHA-1: 47A8E8F3E8B2C3B6B032FCC8C39D3C5FC1AAA390 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5" + oiio:ColorSpace: "lin_rec709" + oiio:SHA-1: "44B96A7C3AFBF8D7621E7C6453266E5DD1962D36" + oiio:subimages: 1 + openexr:levelmode: 0 + openexr:lineOrder: "increasingY" + Stats Min: 0.000000 0.000000 0.000000 (float) + Stats Max: 1.000000 1.000000 1.000000 (float) + Stats Avg: 0.500000 0.500000 0.500000 (float) + Stats StdDev: 0.500000 0.500000 0.500000 (float) + Stats NanCount: 0 0 0 + Stats InfCount: 0 0 0 + Stats FiniteCount: 4096 4096 4096 + Constant: No + Monochrome: Yes +Reading checker-exr.pdq +checker-exr.pdq : 128 x 128, 4 channel, half openexr + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: FA921281D5C8AF14FC50885DD54E2E17509202EC + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:ColorSpace: "lin_rec709" + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 +Reading small.tif +small.tif : 64 x 64, 3 channel, uint8 tiff + SHA-1: BE1D5EA24E907A4C4B3FB3C28EAC872A20F5B414 + channel list: R, G, B + compression: "zip" + ImageDescription: "foo ConstantColor=[0.0,0,-0.0] bar" + Orientation: 1 (normal) + planarconfig: "contig" + oiio:BitsPerSample: 8 + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 + tiff:RowsPerStrip: 32 +Reading small.tx +small.tx : 64 x 64, 3 channel, uint8 tiff + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: BE1D5EA24E907A4C4B3FB3C28EAC872A20F5B414 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + ImageDescription: "foo bar " + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "1,0,0" + oiio:BitsPerSample: 8 + oiio:ConstantColor: "1,0,0" + oiio:SHA-1: "1DD1CB3C76F9A491B115F85A6DAC1B1A8DD2D3CB" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Reading grid.tx + oiio:SHA-1: "9B24D4CC05313A43973AC384718D81D19183B691" +Reading grid-lanczos3.tx + oiio:SHA-1: "D6C3DEE1A567726FB962FE39F0FE94A3E94530CF" +Reading grid-lanczos3-hicomp.tx + oiio:SHA-1: "3994E2C39E040A372BA1894E805382E5D470790F" +whiteenv.exr : 4 x 2, 3 channel, half openexr (+mipmap) + MIP 0 of 3 (4 x 2): + Stats Min: 1.000000 1.000000 1.000000 (float) + Stats Max: 1.000000 1.000000 1.000000 (float) + Stats Avg: 1.000000 1.000000 1.000000 (float) + Stats StdDev: 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 + Stats InfCount: 0 0 0 + Stats FiniteCount: 8 8 8 + Constant: Yes + Constant Color: 1.000000 1.000000 1.000000 (float) + Monochrome: Yes + MIP 1 of 3 (2 x 1): + Stats Min: 1.000000 1.000000 1.000000 (float) + Stats Max: 1.000000 1.000000 1.000000 (float) + Stats Avg: 1.000000 1.000000 1.000000 (float) + Stats StdDev: 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 + Stats InfCount: 0 0 0 + Stats FiniteCount: 2 2 2 + Constant: Yes + Constant Color: 1.000000 1.000000 1.000000 (float) + Monochrome: Yes + MIP 2 of 3 (1 x 1): + Stats Min: 1.000000 1.000000 1.000000 (float) + Stats Max: 1.000000 1.000000 1.000000 (float) + Stats Avg: 1.000000 1.000000 1.000000 (float) + Stats StdDev: 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 + Stats InfCount: 0 0 0 + Stats FiniteCount: 1 1 1 + Constant: Yes + Constant Color: 1.000000 1.000000 1.000000 (float) + Monochrome: Yes +Reading bumpslope.exr +bumpslope.exr : 64 x 64, 6 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 8A309ED5DD4C7ADC8B752735651BAEE9FA326B82 + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + wrapmodes: "black,black" + oiio:AverageColor: "0.499779,-0.000457942,-4.17233e-05,0.00197116,0.00178894,3.45764e-05" + oiio:SHA-1: "49B533110A914CE89BE0B14753A6A4CC037C964F" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.154419 -0.147949 0.000000 0.000000 -0.013084 (float) + Stats Max: 0.823730 0.157471 0.165771 0.024780 0.027481 0.011482 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.099583 0.044395 0.042296 0.002727 0.002597 0.001806 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.084045 -0.111511 0.000016 0.000022 -0.006004 (float) + Stats Max: 0.648438 0.089783 0.089478 0.012108 0.012772 0.004528 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.051041 0.027848 0.028019 0.001675 0.001653 0.000985 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.036224 -0.035797 0.000372 0.000212 -0.001590 (float) + Stats Max: 0.571777 0.025070 0.038147 0.006088 0.007252 0.001852 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.025250 0.011677 0.012831 0.001030 0.001042 0.000522 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.008881 -0.008530 0.000738 0.000785 -0.000559 (float) + Stats Max: 0.521973 0.007755 0.008484 0.003994 0.002920 0.000860 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.011861 0.003779 0.004230 0.000654 0.000485 0.000289 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003515 -0.003843 0.001540 0.001336 -0.000275 (float) + Stats Max: 0.506836 0.003309 0.003777 0.002357 0.002382 0.000297 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.003707 0.001690 0.002319 0.000262 0.000282 0.000150 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001317 -0.000958 0.001850 0.001672 -0.000017 (float) + Stats Max: 0.501953 0.000820 0.000466 0.002174 0.001898 0.000156 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.002028 0.000785 0.000576 0.000123 0.000084 0.000071 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Monochrome: No +Reading bumpslope-central.exr +bumpslope-central.exr : 64 x 64, 6 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 6A80B791A5DA4923D2A61ACC797675228386B64E + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + wrapmodes: "black,black" + oiio:AverageColor: "0.499779,-0.000457942,-4.17233e-05,0.00487623,0.00476811,-1.36547e-05" + oiio:SHA-1: "E332A489C2BCDE63C2DB6A68E847CF396642F0A6" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.261475 -0.244385 0.000000 0.000000 -0.030502 (float) + Stats Max: 0.823730 0.236328 0.233765 0.068359 0.059753 0.034912 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.099583 0.069828 0.069051 0.006553 0.006607 0.004686 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.103577 -0.127563 0.000058 0.000046 -0.011887 (float) + Stats Max: 0.648438 0.101379 0.107178 0.020309 0.018127 0.009590 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.051041 0.035026 0.035099 0.003196 0.003366 0.002658 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.035583 -0.041870 0.000865 0.001112 -0.004601 (float) + Stats Max: 0.571777 0.030853 0.042297 0.010414 0.010582 0.004707 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.025250 0.012919 0.013973 0.001692 0.001859 0.001445 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.009361 -0.009010 0.002705 0.003054 -0.001788 (float) + Stats Max: 0.521973 0.008621 0.007851 0.006950 0.007339 0.001926 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.011861 0.004088 0.004325 0.000915 0.000874 0.000827 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003578 -0.003738 0.003668 0.003828 -0.000752 (float) + Stats Max: 0.506836 0.003597 0.003590 0.005554 0.005314 0.000950 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.003707 0.001743 0.002356 0.000471 0.000375 0.000491 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001377 -0.000869 0.004608 0.004406 -0.000250 (float) + Stats Max: 0.501953 0.000844 0.000495 0.005104 0.004951 0.000434 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.002028 0.000808 0.000532 0.000176 0.000213 0.000264 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Monochrome: No +Reading bumpslope-normal.exr +bumpslope-normal.exr : 128 x 128, 6 channel, half openexr + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 739787FD248804BFE13B7CA5D86404D6B0084395 + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + nuke/full_layer_names: 0 + nuke/node_hash: "297a20bbf504f40b" + nuke/version: "14.1v5" + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + version: 1 + wrapmodes: "black,black" + oiio:AverageColor: "-1,-5.0059e-05,5.46902e-05,0.00489737,0.00494693,4.87366e-05" + oiio:SHA-1: "BC210B60E71DDBBA147EAD3C638ACC908C11CF6C" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 8 (128 x 128): + Stats Min: -1.000000 -0.261230 -0.278076 0.000000 0.000000 -0.030380 (float) + Stats Max: -1.000000 0.313477 0.290039 0.098267 0.084167 0.046570 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.069981 0.070334 0.006810 0.006922 0.004849 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16384 16384 16384 16384 16384 16384 + Constant: No + Monochrome: No + MIP 1 of 8 (64 x 64): + Stats Min: -1.000000 -0.159058 -0.127563 0.000057 0.000046 -0.012695 (float) + Stats Max: -1.000000 0.155151 0.140381 0.035004 0.029022 0.017715 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.034850 0.035138 0.003450 0.003486 0.002725 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 2 of 8 (32 x 32): + Stats Min: -1.000000 -0.040466 -0.041748 0.000652 0.000993 -0.005112 (float) + Stats Max: -1.000000 0.039612 0.038971 0.012085 0.013824 0.005825 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.012983 0.013034 0.001899 0.001915 0.001461 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 3 of 8 (16 x 16): + Stats Min: -1.000000 -0.011620 -0.012039 0.002705 0.002645 -0.001916 (float) + Stats Max: -1.000000 0.012146 0.012619 0.008560 0.008415 0.001927 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.004560 0.004209 0.000992 0.000953 0.000753 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 4 of 8 (8 x 8): + Stats Min: -1.000000 -0.006001 -0.004135 0.003664 0.003765 -0.000823 (float) + Stats Max: -1.000000 0.006027 0.003471 0.006516 0.006592 0.000979 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.001907 0.001611 0.000550 0.000490 0.000416 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 5 of 8 (4 x 4): + Stats Min: -1.000000 -0.001141 -0.000866 0.004356 0.004429 -0.000250 (float) + Stats Max: -1.000000 0.001290 0.001075 0.005409 0.005497 0.000413 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000711 0.000484 0.000232 0.000292 0.000205 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 6 of 8 (2 x 2): + Stats Min: -1.000000 -0.000418 -0.000045 0.004795 0.004749 -0.000015 (float) + Stats Max: -1.000000 0.000680 0.000115 0.005039 0.005207 0.000195 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000443 0.000062 0.000090 0.000189 0.000085 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 7 of 8 (1 x 1): + Stats Min: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Max: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Monochrome: No +Reading cdf.exr +cdf.exr : 64 x 64, 1 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 4125BD6CDB6F869433A2C4A3DF5A16AF92EC9641 + channel list: Y + tile size: 64 x 64 + CDF_0: 0.129412, 0.129412, 0.129412, 0.152941, 0.152941, 0.192157, 0.196078, 0.196078, 0.203922, 0.207843, 0.219608, 0.219608, 0.219608, 0.223529, 0.227451, 0.231373, ... [256 x float] + CDF_bits: 8 + compression: "zip" + fovcot: 1 + invCDF_0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.499779" + oiio:SHA-1: "00DFB31D0260CC466CDCF9FE42446D4896E655FE" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 +Reading bumpslope-cdf.exr +bumpslope-cdf.exr : 64 x 64, 6 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 8A309ED5DD4C7ADC8B752735651BAEE9FA326B82 + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + CDF_0: 0.129412, 0.129412, 0.129412, 0.152941, 0.152941, 0.192157, 0.196078, 0.196078, 0.203922, 0.207843, 0.219608, 0.219608, 0.219608, 0.223529, 0.227451, 0.231373, ... [256 x float] + CDF_1: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + CDF_2: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + CDF_3: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + CDF_4: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + CDF_5: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + CDF_bits: 8 + compression: "zip" + fovcot: 1 + invCDF_0: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... [256 x float] + invCDF_1: 0.517528, 0.53162, 0.546259, 0.56181, 0.577352, 0.592173, 0.60564, 0.618653, 0.631182, 0.646287, 0.659294, 0.671961, 0.688381, 0.702118, 0.715025, 0.729895, ... [256 x float] + invCDF_2: 0.51671, 0.531827, 0.547741, 0.563119, 0.578032, 0.594433, 0.607763, 0.62409, 0.638233, 0.654072, 0.668873, 0.685519, 0.701694, 0.717385, 0.731219, 0.749014, ... [256 x float] + invCDF_3: 0.662209, 0.775653, 0.862829, 0.93215, 0.961514, 0.977621, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... [256 x float] + invCDF_4: 0.680135, 0.789335, 0.863924, 0.929282, 0.966413, 0.991524, 0.991524, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... [256 x float] + invCDF_5: 0.813865, 0.952769, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... [256 x float] + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + wrapmodes: "black,black" + oiio:AverageColor: "0.499779,-0.000457942,-4.17233e-05,0.00197116,0.00178894,3.45764e-05" + oiio:SHA-1: "49B533110A914CE89BE0B14753A6A4CC037C964F" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 +Reading checker-attribs.tx +checker-attribs.tx : 128 x 128, 4 channel, uint8 tiff + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 1C1A7D35CCED212B768B31F002B442EA947D89A6 + channel list: R, G, B, A + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + Orientation: 1 (normal) + planarconfig: "contig" + textureformat: "Plain Texture" + wrapmodes: "black,black" + oiio:AverageColor: "0.5,0.5,0.5,1" + oiio:BitsPerSample: 8 + oiio:SHA-1: "D924CA144A02479D1507F5910F5FC8F51EF78765" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 +Comparing "uffizi_latlong_env-128.exr" and "ref/uffizi_latlong_env-128.exr" +PASS diff --git a/testsuite/maketx/ref/out-macarm.txt b/testsuite/maketx/ref/out-macarm.txt index 2b6e9dcef2..5579d7f5d2 100644 --- a/testsuite/maketx/ref/out-macarm.txt +++ b/testsuite/maketx/ref/out-macarm.txt @@ -81,6 +81,28 @@ grid-resize.tx : 1024 x 1024, 4 channel, uint8 tiff tiff:Compression: 8 tiff:PhotometricInterpretation: 2 tiff:PlanarConfiguration: 1 +Reading tahoe-resize.tx +tahoe-resize.tx : 512 x 512, 3 channel, uint8 tiff + MIP-map levels: 512x512 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 8CC027A700B9CC2CBD1558450A1B185B0F4F8714 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1.33333 + Orientation: 1 (normal) + PixelAspectRatio: 1.33333 + planarconfig: "contig" + ResolutionUnit: "in" + textureformat: "Plain Texture" + wrapmodes: "black,black" + XResolution: 72 + YResolution: 96 + oiio:AverageColor: "0.101931,0.216697,0.425473" + oiio:BitsPerSample: 8 + oiio:SHA-1: "0C3FC1C922FAEAB3F7A4EEB5DA101E54CA09CC2A" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 Reading checker-uint16.tx checker-uint16.tx : 128 x 128, 4 channel, uint16 tiff MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 @@ -441,6 +463,271 @@ bumpslope.exr : 64 x 64, 6 channel, half openexr oiio:subimages: 1 openexr:lineOrder: "increasingY" openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.154419 -0.147949 0.000000 0.000000 -0.013084 (float) + Stats Max: 0.823730 0.157471 0.165771 0.024780 0.027481 0.011482 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.099583 0.044395 0.042296 0.002727 0.002597 0.001806 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.084045 -0.111511 0.000016 0.000022 -0.006004 (float) + Stats Max: 0.648438 0.089783 0.089478 0.012108 0.012772 0.004528 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.051041 0.027848 0.028019 0.001675 0.001653 0.000985 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.036224 -0.035797 0.000372 0.000212 -0.001590 (float) + Stats Max: 0.571777 0.025070 0.038147 0.006088 0.007252 0.001852 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.025250 0.011677 0.012831 0.001030 0.001042 0.000522 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.008881 -0.008530 0.000738 0.000785 -0.000559 (float) + Stats Max: 0.521973 0.007755 0.008484 0.003994 0.002920 0.000860 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.011861 0.003779 0.004230 0.000654 0.000485 0.000289 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003515 -0.003843 0.001540 0.001336 -0.000275 (float) + Stats Max: 0.506836 0.003309 0.003777 0.002357 0.002382 0.000297 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.003707 0.001690 0.002319 0.000262 0.000282 0.000150 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001317 -0.000958 0.001850 0.001672 -0.000017 (float) + Stats Max: 0.501953 0.000820 0.000466 0.002174 0.001898 0.000156 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.002028 0.000785 0.000576 0.000123 0.000084 0.000071 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Monochrome: No +Reading bumpslope-central.exr +bumpslope-central.exr : 64 x 64, 6 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 6A80B791A5DA4923D2A61ACC797675228386B64E + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + wrapmodes: "black,black" + oiio:AverageColor: "0.499779,-0.000457942,-4.17233e-05,0.00487623,0.00476811,-1.36547e-05" + oiio:SHA-1: "E332A489C2BCDE63C2DB6A68E847CF396642F0A6" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.261475 -0.244385 0.000000 0.000000 -0.030502 (float) + Stats Max: 0.823730 0.236328 0.233765 0.068359 0.059753 0.034912 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.099583 0.069828 0.069051 0.006553 0.006607 0.004686 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.103577 -0.127563 0.000058 0.000046 -0.011887 (float) + Stats Max: 0.648438 0.101379 0.107178 0.020309 0.018127 0.009590 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.051041 0.035026 0.035099 0.003196 0.003366 0.002658 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.035583 -0.041870 0.000865 0.001112 -0.004601 (float) + Stats Max: 0.571777 0.030853 0.042297 0.010414 0.010582 0.004707 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.025250 0.012919 0.013973 0.001692 0.001859 0.001445 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.009361 -0.009010 0.002705 0.003054 -0.001788 (float) + Stats Max: 0.521973 0.008621 0.007851 0.006950 0.007339 0.001926 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.011861 0.004088 0.004325 0.000915 0.000874 0.000827 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003578 -0.003738 0.003668 0.003828 -0.000752 (float) + Stats Max: 0.506836 0.003597 0.003590 0.005554 0.005314 0.000950 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.003707 0.001743 0.002356 0.000471 0.000375 0.000491 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001377 -0.000869 0.004608 0.004406 -0.000250 (float) + Stats Max: 0.501953 0.000844 0.000495 0.005104 0.004951 0.000434 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.002028 0.000808 0.000532 0.000176 0.000213 0.000264 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Monochrome: No +Reading bumpslope-normal.exr +bumpslope-normal.exr : 128 x 128, 6 channel, half openexr + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 739787FD248804BFE13B7CA5D86404D6B0084395 + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + nuke/full_layer_names: 0 + nuke/node_hash: "297a20bbf504f40b" + nuke/version: "14.1v5" + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + version: 1 + wrapmodes: "black,black" + oiio:AverageColor: "-1,-5.0059e-05,5.46902e-05,0.00489737,0.00494693,4.87366e-05" + oiio:SHA-1: "BC210B60E71DDBBA147EAD3C638ACC908C11CF6C" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 8 (128 x 128): + Stats Min: -1.000000 -0.261230 -0.278076 0.000000 0.000000 -0.030380 (float) + Stats Max: -1.000000 0.313477 0.290039 0.098267 0.084167 0.046570 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.069981 0.070334 0.006810 0.006922 0.004849 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16384 16384 16384 16384 16384 16384 + Constant: No + Monochrome: No + MIP 1 of 8 (64 x 64): + Stats Min: -1.000000 -0.159058 -0.127563 0.000057 0.000046 -0.012695 (float) + Stats Max: -1.000000 0.155151 0.140381 0.035004 0.029022 0.017715 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.034850 0.035138 0.003450 0.003486 0.002725 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 2 of 8 (32 x 32): + Stats Min: -1.000000 -0.040466 -0.041748 0.000652 0.000993 -0.005112 (float) + Stats Max: -1.000000 0.039612 0.038971 0.012085 0.013824 0.005825 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.012983 0.013034 0.001899 0.001915 0.001461 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 3 of 8 (16 x 16): + Stats Min: -1.000000 -0.011620 -0.012039 0.002705 0.002645 -0.001916 (float) + Stats Max: -1.000000 0.012146 0.012619 0.008560 0.008415 0.001927 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.004560 0.004209 0.000992 0.000953 0.000753 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 4 of 8 (8 x 8): + Stats Min: -1.000000 -0.006001 -0.004135 0.003664 0.003765 -0.000823 (float) + Stats Max: -1.000000 0.006027 0.003471 0.006516 0.006592 0.000979 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.001907 0.001611 0.000550 0.000490 0.000416 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 5 of 8 (4 x 4): + Stats Min: -1.000000 -0.001141 -0.000866 0.004356 0.004429 -0.000250 (float) + Stats Max: -1.000000 0.001290 0.001075 0.005409 0.005497 0.000413 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000711 0.000484 0.000232 0.000292 0.000205 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 6 of 8 (2 x 2): + Stats Min: -1.000000 -0.000418 -0.000045 0.004795 0.004749 -0.000015 (float) + Stats Max: -1.000000 0.000680 0.000115 0.005039 0.005207 0.000195 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000443 0.000062 0.000090 0.000189 0.000085 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 7 of 8 (1 x 1): + Stats Min: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Max: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Monochrome: No Reading cdf.exr cdf.exr : 64 x 64, 1 channel, half openexr MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 diff --git a/testsuite/maketx/ref/out.txt b/testsuite/maketx/ref/out.txt index d0574dad09..dda1901829 100644 --- a/testsuite/maketx/ref/out.txt +++ b/testsuite/maketx/ref/out.txt @@ -81,6 +81,28 @@ grid-resize.tx : 1024 x 1024, 4 channel, uint8 tiff tiff:Compression: 8 tiff:PhotometricInterpretation: 2 tiff:PlanarConfiguration: 1 +Reading tahoe-resize.tx +tahoe-resize.tx : 512 x 512, 3 channel, uint8 tiff + MIP-map levels: 512x512 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 0EA33A92FFE87587280728576050604BCE76DAC5 + channel list: R, G, B + tile size: 64 x 64 + compression: "zip" + fovcot: 1.33333 + Orientation: 1 (normal) + PixelAspectRatio: 1.33333 + planarconfig: "contig" + ResolutionUnit: "in" + textureformat: "Plain Texture" + wrapmodes: "black,black" + XResolution: 72 + YResolution: 96 + oiio:AverageColor: "0.101931,0.216697,0.425473" + oiio:BitsPerSample: 8 + oiio:SHA-1: "799C1441E4B45378165DE450828109AF330A3F87" + tiff:Compression: 8 + tiff:PhotometricInterpretation: 2 + tiff:PlanarConfiguration: 1 Reading checker-uint16.tx checker-uint16.tx : 128 x 128, 4 channel, uint16 tiff MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 @@ -441,6 +463,271 @@ bumpslope.exr : 64 x 64, 6 channel, half openexr oiio:subimages: 1 openexr:lineOrder: "increasingY" openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.154419 -0.147949 0.000000 0.000000 -0.013084 (float) + Stats Max: 0.823730 0.157471 0.165771 0.024780 0.027481 0.011482 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.099583 0.044395 0.042296 0.002727 0.002597 0.001806 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.084045 -0.111511 0.000016 0.000022 -0.006004 (float) + Stats Max: 0.648438 0.089783 0.089478 0.012108 0.012772 0.004528 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.051041 0.027848 0.028019 0.001675 0.001653 0.000985 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.036224 -0.035797 0.000372 0.000212 -0.001590 (float) + Stats Max: 0.571777 0.025070 0.038147 0.006088 0.007252 0.001852 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.025250 0.011677 0.012831 0.001030 0.001042 0.000522 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.008881 -0.008530 0.000738 0.000785 -0.000559 (float) + Stats Max: 0.521973 0.007755 0.008484 0.003994 0.002920 0.000860 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.011861 0.003779 0.004230 0.000654 0.000485 0.000289 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003515 -0.003843 0.001540 0.001336 -0.000275 (float) + Stats Max: 0.506836 0.003309 0.003777 0.002357 0.002382 0.000297 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.003707 0.001690 0.002319 0.000262 0.000282 0.000150 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001317 -0.000958 0.001850 0.001672 -0.000017 (float) + Stats Max: 0.501953 0.000820 0.000466 0.002174 0.001898 0.000156 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001971 0.001789 0.000035 (float) + Stats StdDev: 0.002028 0.000785 0.000576 0.000123 0.000084 0.000071 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.001970 0.001789 0.000035 (float) + Monochrome: No +Reading bumpslope-central.exr +bumpslope-central.exr : 64 x 64, 6 channel, half openexr + MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 6A80B791A5DA4923D2A61ACC797675228386B64E + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + wrapmodes: "black,black" + oiio:AverageColor: "0.499779,-0.000457942,-4.17233e-05,0.00487623,0.00476811,-1.36547e-05" + oiio:SHA-1: "E332A489C2BCDE63C2DB6A68E847CF396642F0A6" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 7 (64 x 64): + Stats Min: 0.131714 -0.261475 -0.244385 0.000000 0.000000 -0.030502 (float) + Stats Max: 0.823730 0.236328 0.233765 0.068359 0.059753 0.034912 (float) + Stats Avg: 0.499779 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.099583 0.069828 0.069051 0.006553 0.006607 0.004686 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 1 of 7 (32 x 32): + Stats Min: 0.353027 -0.103577 -0.127563 0.000058 0.000046 -0.011887 (float) + Stats Max: 0.648438 0.101379 0.107178 0.020309 0.018127 0.009590 (float) + Stats Avg: 0.499778 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.051041 0.035026 0.035099 0.003196 0.003366 0.002658 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 2 of 7 (16 x 16): + Stats Min: 0.408203 -0.035583 -0.041870 0.000865 0.001112 -0.004601 (float) + Stats Max: 0.571777 0.030853 0.042297 0.010414 0.010582 0.004707 (float) + Stats Avg: 0.499782 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.025250 0.012919 0.013973 0.001692 0.001859 0.001445 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 3 of 7 (8 x 8): + Stats Min: 0.476562 -0.009361 -0.009010 0.002705 0.003054 -0.001788 (float) + Stats Max: 0.521973 0.008621 0.007851 0.006950 0.007339 0.001926 (float) + Stats Avg: 0.499767 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.011861 0.004088 0.004325 0.000915 0.000874 0.000827 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 4 of 7 (4 x 4): + Stats Min: 0.493896 -0.003578 -0.003738 0.003668 0.003828 -0.000752 (float) + Stats Max: 0.506836 0.003597 0.003590 0.005554 0.005314 0.000950 (float) + Stats Avg: 0.499771 -0.000458 -0.000042 0.004876 0.004768 -0.000014 (float) + Stats StdDev: 0.003707 0.001743 0.002356 0.000471 0.000375 0.000491 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 5 of 7 (2 x 2): + Stats Min: 0.497070 -0.001377 -0.000869 0.004608 0.004406 -0.000250 (float) + Stats Max: 0.501953 0.000844 0.000495 0.005104 0.004951 0.000434 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.002028 0.000808 0.000532 0.000176 0.000213 0.000264 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 6 of 7 (1 x 1): + Stats Min: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Max: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats Avg: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: 0.499756 -0.000458 -0.000042 0.004875 0.004768 -0.000014 (float) + Monochrome: No +Reading bumpslope-normal.exr +bumpslope-normal.exr : 128 x 128, 6 channel, half openexr + MIP-map levels: 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 + SHA-1: 739787FD248804BFE13B7CA5D86404D6B0084395 + channel list: b0_h, b1_dhds, b2_dhdt, b3_dhds2, b4_dhdt2, b5_dh2dsdt + tile size: 64 x 64 + compression: "zip" + fovcot: 1 + nuke/full_layer_names: 0 + nuke/node_hash: "297a20bbf504f40b" + nuke/version: "14.1v5" + PixelAspectRatio: 1 + screenWindowCenter: 0, 0 + screenWindowWidth: 1 + textureformat: "Plain Texture" + uvslopes_scale: 0 + version: 1 + wrapmodes: "black,black" + oiio:AverageColor: "-1,-5.0059e-05,5.46902e-05,0.00489737,0.00494693,4.87366e-05" + oiio:SHA-1: "BC210B60E71DDBBA147EAD3C638ACC908C11CF6C" + oiio:subimages: 1 + openexr:lineOrder: "increasingY" + openexr:roundingmode: 0 + MIP 0 of 8 (128 x 128): + Stats Min: -1.000000 -0.261230 -0.278076 0.000000 0.000000 -0.030380 (float) + Stats Max: -1.000000 0.313477 0.290039 0.098267 0.084167 0.046570 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.069981 0.070334 0.006810 0.006922 0.004849 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16384 16384 16384 16384 16384 16384 + Constant: No + Monochrome: No + MIP 1 of 8 (64 x 64): + Stats Min: -1.000000 -0.159058 -0.127563 0.000057 0.000046 -0.012695 (float) + Stats Max: -1.000000 0.155151 0.140381 0.035004 0.029022 0.017715 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.034850 0.035138 0.003450 0.003486 0.002725 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4096 4096 4096 4096 4096 4096 + Constant: No + Monochrome: No + MIP 2 of 8 (32 x 32): + Stats Min: -1.000000 -0.040466 -0.041748 0.000652 0.000993 -0.005112 (float) + Stats Max: -1.000000 0.039612 0.038971 0.012085 0.013824 0.005825 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.012983 0.013034 0.001899 0.001915 0.001461 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1024 1024 1024 1024 1024 1024 + Constant: No + Monochrome: No + MIP 3 of 8 (16 x 16): + Stats Min: -1.000000 -0.011620 -0.012039 0.002705 0.002645 -0.001916 (float) + Stats Max: -1.000000 0.012146 0.012619 0.008560 0.008415 0.001927 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.004560 0.004209 0.000992 0.000953 0.000753 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 256 256 256 256 256 256 + Constant: No + Monochrome: No + MIP 4 of 8 (8 x 8): + Stats Min: -1.000000 -0.006001 -0.004135 0.003664 0.003765 -0.000823 (float) + Stats Max: -1.000000 0.006027 0.003471 0.006516 0.006592 0.000979 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.001907 0.001611 0.000550 0.000490 0.000416 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 64 64 64 64 64 64 + Constant: No + Monochrome: No + MIP 5 of 8 (4 x 4): + Stats Min: -1.000000 -0.001141 -0.000866 0.004356 0.004429 -0.000250 (float) + Stats Max: -1.000000 0.001290 0.001075 0.005409 0.005497 0.000413 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000711 0.000484 0.000232 0.000292 0.000205 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 16 16 16 16 16 16 + Constant: No + Monochrome: No + MIP 6 of 8 (2 x 2): + Stats Min: -1.000000 -0.000418 -0.000045 0.004795 0.004749 -0.000015 (float) + Stats Max: -1.000000 0.000680 0.000115 0.005039 0.005207 0.000195 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004897 0.004947 0.000049 (float) + Stats StdDev: 0.000000 0.000443 0.000062 0.000090 0.000189 0.000085 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 4 4 4 4 4 4 + Constant: No + Monochrome: No + MIP 7 of 8 (1 x 1): + Stats Min: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Max: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats Avg: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Stats StdDev: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 (float) + Stats NanCount: 0 0 0 0 0 0 + Stats InfCount: 0 0 0 0 0 0 + Stats FiniteCount: 1 1 1 1 1 1 + Constant: Yes + Constant Color: -1.000000 -0.000050 0.000055 0.004898 0.004948 0.000049 (float) + Monochrome: No Reading cdf.exr cdf.exr : 64 x 64, 1 channel, half openexr MIP-map levels: 64x64 32x32 16x16 8x8 4x4 2x2 1x1 diff --git a/testsuite/maketx/run.py b/testsuite/maketx/run.py index 29304f2192..ec4401f923 100755 --- a/testsuite/maketx/run.py +++ b/testsuite/maketx/run.py @@ -27,6 +27,10 @@ command += maketx_command ("../common/grid.tif", "grid-resize.tx", "--resize", showinfo=True) +# test --keepaspect +command += maketx_command ("../common/tahoe-small.tif", "tahoe-resize.tx", + "--resize --keepaspect", showinfo=True) + # Test -d to set output data type command += maketx_command ("checker.tif", "checker-uint16.tx", "-d uint16", showinfo=True) @@ -136,7 +140,16 @@ # Test --bumpslopes to export a 6 channels height map with gradients command += maketx_command ("noise.exr", "bumpslope.exr", - "--bumpslopes -d half", showinfo=True) + "--bumpslopes -d half", + showinfo=True, showinfo_extra="--stats") + +command += maketx_command ("noise.exr", "bumpslope-central.exr", + "--bumpslopes --slopefilter centraldiff -d half", + showinfo=True, showinfo_extra="--stats") + +command += maketx_command ("src/normal.exr", "bumpslope-normal.exr", + "--bumpslopes -d half", + showinfo=True, showinfo_extra="--stats") # Test --cdf command += maketx_command ("noise.exr", "cdf.exr", diff --git a/testsuite/maketx/src/normal.exr b/testsuite/maketx/src/normal.exr new file mode 100644 index 0000000000..b53df6d85a Binary files /dev/null and b/testsuite/maketx/src/normal.exr differ