summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordarth negative hunter <73083466+thenegativehunter2@users.noreply.github.com>2021-08-29 12:49:45 +0430
committerdarthroohi <thenegativehunter2@gmail.com>2021-08-29 21:47:51 +0430
commit3afabb8f17c1b031a28ce87d40024078a6ee69b2 (patch)
tree75cf540c2c9f3a2dc8824cc2350363ffce31e207
parent4d08a737fb868b4c2f47946aea7c9ec4ee97894d (diff)
Add an import option to force TextureArrays as normal maps for RGTC
i have added the option to chose normal map for channel pack. this will force the to use red and green channels for the texture only. the option is added meaning it will not conflict with the existing settings. i have made this change as a response to my own proposal Bugsquad edit: Closes godotengine/godot-proposals#3184
-rw-r--r--editor/import/resource_importer_layered_texture.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index d5bb21443c..eb44f13620 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -138,7 +138,7 @@ void ResourceImporterLayeredTexture::get_import_options(List<ImportOption> *r_op
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "compress/lossy_quality", PROPERTY_HINT_RANGE, "0,1,0.01"), 0.7));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/hdr_compression", PROPERTY_HINT_ENUM, "Disabled,Opaque Only,Always"), 1));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/bptc_ldr", PROPERTY_HINT_ENUM, "Disabled,Enabled,RGBA Only"), 0));
- r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/channel_pack", PROPERTY_HINT_ENUM, "sRGB Friendly,Optimized"), 0));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/channel_pack", PROPERTY_HINT_ENUM, "sRGB Friendly,Optimized,Normal Map (RG channels"), 0));
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "mipmaps/generate"), true));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "mipmaps/limit", PROPERTY_HINT_RANGE, "-1,256"), -1));
@@ -249,7 +249,7 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons
}
if (p_mipmaps) {
- p_images.write[i]->generate_mipmaps();
+ p_images.write[i]->generate_mipmaps(p_csource == Image::COMPRESS_SOURCE_NORMAL);
} else {
p_images.write[i]->clear_mipmaps();
}
@@ -356,6 +356,9 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const
Image::CompressSource csource = Image::COMPRESS_SOURCE_GENERIC;
if (channel_pack == 0) {
csource = Image::COMPRESS_SOURCE_SRGB;
+ } else if (channel_pack == 2) {
+ // force normal
+ csource = Image::COMPRESS_SOURCE_NORMAL;
}
Image::UsedChannels used_channels = image->detect_used_channels(csource);