diff --git a/src/nvimage/CMakeLists.txt b/src/nvimage/CMakeLists.txt index 2c7eb61..9db199c 100644 --- a/src/nvimage/CMakeLists.txt +++ b/src/nvimage/CMakeLists.txt @@ -2,29 +2,18 @@ PROJECT(nvimage) SET(IMAGE_SRCS nvimage.h - FloatImage.h - FloatImage.cpp - Filter.h - Filter.cpp - Image.h - Image.cpp - ImageIO.h - ImageIO.cpp - ColorBlock.h - ColorBlock.cpp - BlockDXT.h - BlockDXT.cpp - DirectDrawSurface.h - DirectDrawSurface.cpp - Quantize.h - Quantize.cpp - NormalMap.h - NormalMap.cpp - PsdFile.h - TgaFile.h + BlockDXT.h BlockDXT.cpp + ColorBlock.h ColorBlock.cpp + DirectDrawSurface.h DirectDrawSurface.cpp + Filter.h Filter.cpp + FloatImage.h FloatImage.cpp + Image.h Image.cpp + ImageIO.h ImageIO.cpp + NormalMap.h NormalMap.cpp PixelFormat.h - ColorSpace.h - ColorSpace.cpp) + PsdFile.h + Quantize.h Quantize.cpp + TgaFile.h) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/nvmath/Color.h b/src/nvmath/Color.h index 02b8168..02c3b70 100644 --- a/src/nvmath/Color.h +++ b/src/nvmath/Color.h @@ -175,6 +175,16 @@ namespace nv return Vector4(c.r * scale, c.g * scale, c.b * scale, c.a * scale); } + + inline float perceptualColorDistance(Vector3::Arg c0, Vector3::Arg c1) + { + float rmean = (c0.r + c1.r) * 0.5f; + float r = c1.r - c0.r; + float g = c1.g - c0.g; + float b = c1.b - c0.b; + return sqrtf((2 + rmean)*r*r + 4*g*g + (3 - rmean)*b*b); + } + } // nv namespace #endif // NV_MATH_COLOR_H diff --git a/src/nvtt/CompressionOptions.cpp b/src/nvtt/CompressionOptions.cpp index e24ef55..e32d496 100644 --- a/src/nvtt/CompressionOptions.cpp +++ b/src/nvtt/CompressionOptions.cpp @@ -86,7 +86,7 @@ void CompressionOptions::setQuality(Quality quality) /// Set the weights of each color channel. -/// The choice for these values is subjective. In many case uniform color weights +/// The choice for these values is subjective. In most cases uniform color weights /// (1.0, 1.0, 1.0) work very well. A popular choice is to use the NTSC luma encoding /// weights (0.2126, 0.7152, 0.0722), but I think that blue contributes to our /// perception more than a 7%. A better choice in my opinion is (3, 4, 2).