Experiment with endpoint refinement. Add Rich's encoder, not functional yet.
This commit is contained in:
parent
ca3871a28c
commit
5eac5a4859
@ -214,7 +214,7 @@ void FastCompressorDXT1::compressBlock(Vector4 colors[16], float weights[16], co
|
|||||||
}
|
}
|
||||||
void CompressorDXT1::compressBlock(Vector4 colors[16], float weights[16], const CompressionOptions::Private & compressionOptions, void * output)
|
void CompressorDXT1::compressBlock(Vector4 colors[16], float weights[16], const CompressionOptions::Private & compressionOptions, void * output)
|
||||||
{
|
{
|
||||||
compress_dxt1(colors, weights, compressionOptions.colorWeight.xyz(), /*three_color_mode*/true, (BlockDXT1 *)output);
|
compress_dxt1(colors, weights, compressionOptions.colorWeight.xyz(), /*three_color_mode*/true, false, (BlockDXT1 *)output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,29 +1,5 @@
|
|||||||
// Copyright (c) 2009-2011 Ignacio Castano <castano@gmail.com>
|
|
||||||
// Copyright (c) 2007-2009 NVIDIA Corporation -- Ignacio Castano <icastano@nvidia.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person
|
|
||||||
// obtaining a copy of this software and associated documentation
|
|
||||||
// files (the "Software"), to deal in the Software without
|
|
||||||
// restriction, including without limitation the rights to use,
|
|
||||||
// copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following
|
|
||||||
// conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be
|
|
||||||
// included in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
// OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
#ifndef NVTT_BLOCKCOMPRESSOR_H
|
#pragma once
|
||||||
#define NVTT_BLOCKCOMPRESSOR_H
|
|
||||||
|
|
||||||
#include "Compressor.h"
|
#include "Compressor.h"
|
||||||
|
|
||||||
@ -189,6 +165,3 @@ namespace nv
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
} // nv namespace
|
} // nv namespace
|
||||||
|
|
||||||
|
|
||||||
#endif // NVTT_BLOCKCOMPRESSOR_H
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -18,9 +18,15 @@ namespace nv {
|
|||||||
void compress_dxt1_cluster_fit(const Vector4 input_colors[16], const Vector3 * colors, const float * weights, int count, const Vector3 & color_weights, bool three_color_mode, BlockDXT1 * output);
|
void compress_dxt1_cluster_fit(const Vector4 input_colors[16], const Vector3 * colors, const float * weights, int count, const Vector3 & color_weights, bool three_color_mode, BlockDXT1 * output);
|
||||||
|
|
||||||
// Cluster fit end point selection.
|
// Cluster fit end point selection.
|
||||||
float compress_dxt1(const Vector4 input_colors[16], const float input_weights[16], const Vector3 & color_weights, bool three_color_mode, BlockDXT1 * output);
|
float compress_dxt1(const Vector4 input_colors[16], const float input_weights[16], const Vector3 & color_weights, bool three_color_mode, bool hq, BlockDXT1 * output);
|
||||||
|
|
||||||
// Quick end point selection followed by least squares refinement.
|
// Quick end point selection followed by least squares refinement.
|
||||||
float compress_dxt1_fast(const Vector4 input_colors[16], const float input_weights[16], const Vector3 & color_weights, BlockDXT1 * output);
|
float compress_dxt1_fast(const Vector4 input_colors[16], const float input_weights[16], const Vector3 & color_weights, BlockDXT1 * output);
|
||||||
|
|
||||||
|
// @@ Change these interfaces to take a pitch argument instead of assuming (4*4), just like CMP_Core.
|
||||||
|
void compress_dxt1_fast2(const unsigned char input_colors[16*4], BlockDXT1 * output);
|
||||||
|
void compress_dxt1_fast_geld(const unsigned char input_colors[16 * 4], BlockDXT1 * output);
|
||||||
|
|
||||||
|
float evaluate_dxt1_error(const unsigned char rgba_block[16 * 4], const BlockDXT1 * block, int decoder = 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ float nv::compress_dxt5_rgbm(const Vector4 input_colors[16], const float input_w
|
|||||||
convert_to_rgbm(input_colors, input_weights, min_m, input_colors_rgbm, rgb_weights);
|
convert_to_rgbm(input_colors, input_weights, min_m, input_colors_rgbm, rgb_weights);
|
||||||
|
|
||||||
// Compress RGB.
|
// Compress RGB.
|
||||||
compress_dxt1(input_colors_rgbm, rgb_weights, Vector3(1), /*three_color_mode=*/false, &output->color);
|
compress_dxt1(input_colors_rgbm, rgb_weights, Vector3(1), /*three_color_mode=*/false, /*hq=*/false, &output->color);
|
||||||
|
|
||||||
// Decompress RGB/M block.
|
// Decompress RGB/M block.
|
||||||
nv::ColorBlock RGB;
|
nv::ColorBlock RGB;
|
||||||
|
Loading…
Reference in New Issue
Block a user