Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Normal Map (RG Channels) import option has no memory difference in UI #101610

Closed
FireCatMagic opened this issue Jan 15, 2025 · 3 comments · Fixed by #101623
Closed

Normal Map (RG Channels) import option has no memory difference in UI #101610

FireCatMagic opened this issue Jan 15, 2025 · 3 comments · Fixed by #101623

Comments

@FireCatMagic
Copy link
Contributor

Tested versions

Godot v4.4.dev7

System information

Godot v4.4.dev7 - Windows 10 (build 19045) - Single-window, 1 monitor - OpenGL 3 (Compatibility) - NVIDIA GeForce RTX 4050 Laptop GPU (NVIDIA; 32.0.15.6070) - 13th Gen Intel(R) Core(TM) i5-13500HX (20 threads)

Issue description

According to docs:
https://docs.godotengine.org/en/stable/tutorials/assets_pipeline/importing_images.html
A third option Normal Map (RG Channels) is only available in layered textures ([Cubemap](https://docs.godotengine.org/en/stable/classes/class_cubemap.html#class-cubemap), [CubemapArray](https://docs.godotengine.org/en/stable/classes/class_cubemaparray.html#class-cubemaparray), [Texture2DArray](https://docs.godotengine.org/en/stable/classes/class_texture2darray.html#class-texture2darray) and [Texture3D](https://docs.godotengine.org/en/stable/classes/class_texture3d.html#class-texture3d)). This forces all layers from the texture to be imported with the RG color format to reduce memory usage, with only the red and green channels preserved. This only has an effect on textures with the VRAM Compressed or Basis Universal compression modes.

It says memory usage will be reduced. However, this doesn't appear to have any difference because the Memory value shown does not change:

RG:

Image

RGBA:

Image

I would expect it to display a lower value.

Steps to reproduce

Import any layered texture and change the compression to Basis Universal, then set the channel pack to RG mode. Notice that changing the channel back makes no difference in the memory size.

Minimal reproduction project (MRP)

n/a

@FireCatMagic
Copy link
Contributor Author

The same also applies to the Normal Map import option for Texture2D.

@clayjohn
Copy link
Member

clayjohn commented Jan 15, 2025

This is what I am seeing under Compress > Normal Map

In the example below, the normal map with RGTC compression is able to preserve its detail much better, while using the same amount of memory as a standard RGBA VRAM-compressed texture:

Which is accurate. RGTC takes the same amount of space as the other compressed options

Edit: Oh I see, this is under Compress > Channel Pack not "Normal Map". It should be clarified to specify that it increases quality at the same memory usage rather than saying it decreases memory usage

@tom-schultz
Copy link
Contributor

Unless I misunderstood, this is a documentation change not a code change so I updated the docs with the text from the Normal Map section.

Also, first contribution to Godot! 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants