ATOM-16029 Add direct support for Astc compression (#4157)
* ATOM-16029 Add direct support for Astc compression Changes include: - Add ASTCCompressor class - Enabled 3rdparty::astc-encoder static library. - Remove ASTC support in PVRTC compressor and ISPC compressor. - Update unit test to include texts for ASTC compress/decompress. Signed-off-by: Qing Tao <qingtao@amazon.com>
This commit is contained in:
@@ -117,6 +117,11 @@ namespace ImageProcessingAtom
|
||||
}
|
||||
}
|
||||
|
||||
const ImageConvertProcessDescriptor* ImageConvertProcess::GetInputDesc() const
|
||||
{
|
||||
return m_input.get();
|
||||
}
|
||||
|
||||
ImageConvertProcess::ImageConvertProcess(AZStd::unique_ptr<ImageConvertProcessDescriptor>&& descriptor)
|
||||
: m_image(nullptr)
|
||||
, m_progressStep(0)
|
||||
@@ -554,12 +559,6 @@ namespace ImageProcessingAtom
|
||||
// pixel format conversion
|
||||
bool ImageConvertProcess::ConvertPixelformat()
|
||||
{
|
||||
//For ASTC compression we need to clear out the alpha to get accurate rgb compression.
|
||||
if(m_alphaImage && IsASTCFormat(m_input->m_presetSetting.m_pixelFormat))
|
||||
{
|
||||
m_image->Get()->Swizzle("rgb1");
|
||||
}
|
||||
|
||||
//set up compress option
|
||||
ICompressor::EQuality quality;
|
||||
if (m_input->m_isPreview)
|
||||
@@ -574,7 +573,14 @@ namespace ImageProcessingAtom
|
||||
// set the compression options
|
||||
m_image->GetCompressOption().compressQuality = quality;
|
||||
m_image->GetCompressOption().rgbWeight = m_input->m_presetSetting.GetColorWeight();
|
||||
m_image->GetCompressOption().ispcDiscardAlpha = m_input->m_presetSetting.m_discardAlpha;
|
||||
m_image->GetCompressOption().discardAlpha = m_input->m_presetSetting.m_discardAlpha;
|
||||
|
||||
//For ASTC compression we need to clear out the alpha to get accurate rgb compression.
|
||||
if(m_alphaImage && IsASTCFormat(m_input->m_presetSetting.m_pixelFormat))
|
||||
{
|
||||
m_image->GetCompressOption().discardAlpha = true;
|
||||
}
|
||||
|
||||
m_image->ConvertFormat(m_input->m_presetSetting.m_pixelFormat);
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user