+2 votes

I know what Spritesheets are and why they are used.

I wanted to ask more specific question, on how AtlasTexture resource works in Godot and what it's doing behind the scenes.
From the docs description of AtlasTexture we can read:

"Packs multiple small textures in a single, bigger one. Helps to optimize video memory costs and render calls."

But I don't think it's what this resource does, since I dont see any API that could really create an actual atlas (pack small images into one bigger one). Unless its done on project export time? But even if, then still I don't see any way to define which png files should be packed into one common spritesheet...

But there is also second option: all the above (and docs) are wrong and AtlasTexture is not packing anything at all. In such case user needs to prepare his own atlas (in graphic program), and put the atlas as png project in file. Then AtlasTexture could be used to define concrete region of that spritesheet. But if this scenario is true, then I don't understand why not just use regular texture with texture region. Maybe there is performance reason? -> Maybe all the sprites that are using distinct AtlasTexture resources will be batched during the rendering in the way that if possible only one draw call will be used?

Would be cool if someone could clarify things for me, thanks!

in Engine by (1,279 points)

Some light on what happened with automatic atlas creation 'on export' time in 3.0: https://github.com/godotengine/godot/issues/13940

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.