diff options
| author | BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com> | 2024-10-04 23:38:39 +0200 |
|---|---|---|
| committer | BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com> | 2024-10-04 23:38:39 +0200 |
| commit | 77dab88ef0e9062b2b94ed28c339d1e96ac57021 (patch) | |
| tree | a9282efe70b56bd64e89c101b2334727580dcf65 | |
| parent | 1fc82087658066935bed9e1350d62e334c7e0309 (diff) | |
| download | redot-engine-77dab88ef0e9062b2b94ed28c339d1e96ac57021.tar.gz | |
Fix 3D HDR texture import with lossless compression
| -rw-r--r-- | editor/import/resource_importer_layered_texture.cpp | 4 | ||||
| -rw-r--r-- | editor/import/resource_importer_texture.cpp | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp index 72d715ac2d..9de34cf1db 100644 --- a/editor/import/resource_importer_layered_texture.cpp +++ b/editor/import/resource_importer_layered_texture.cpp @@ -276,6 +276,10 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons f->store_32(0); f->store_32(0); + if ((p_compress_mode == COMPRESS_LOSSLESS || p_compress_mode == COMPRESS_LOSSY) && p_images[0]->get_format() >= Image::FORMAT_RF) { + p_compress_mode = COMPRESS_VRAM_UNCOMPRESSED; // These can't go as lossy. + } + for (int i = 0; i < p_images.size(); i++) { ResourceImporterTexture::save_to_ctex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy); } diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index a205123df1..b1cf079c1f 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -380,7 +380,7 @@ void ResourceImporterTexture::_save_ctex(const Ref<Image> &p_image, const String f->store_32(0); f->store_32(0); - if ((p_compress_mode == COMPRESS_LOSSLESS || p_compress_mode == COMPRESS_LOSSY) && p_image->get_format() > Image::FORMAT_RGBA8) { + if ((p_compress_mode == COMPRESS_LOSSLESS || p_compress_mode == COMPRESS_LOSSY) && p_image->get_format() >= Image::FORMAT_RF) { p_compress_mode = COMPRESS_VRAM_UNCOMPRESSED; //these can't go as lossy } |
