How to Atlas Everything in Your World
Texture atlasing combines several small textures into fewer larger texture sheets so multiple meshes can share fewer materials. In VRChat worlds, that can reduce material-slot clutter, improve batching opportunities, and make a scene easier to reason about before upload.
Use Maebbie's video for the Unity demonstration. The notes below focus on VRChat world checks before using the setup in a live project.
Atlas repeated static props and environment sets first. Do not flatten unrelated world sections just to make the material count look smaller.
- Duplicate the scene or prefab group before changing UVs and materials.
- Atlas objects that can share one shader, render settings, and texture set.
- Test draw calls, texture memory, and visual quality before replacing the original assets.
Atlasing helps most when it reduces real material switches. A huge atlas can still hurt download size, memory use, mipmap quality, or Quest readability if it is planned poorly.
Playlist Companion
Creator: Maebbie
Watch on YouTube: https://www.youtube.com/watch?v=urrhgBHVYGQ&list=PLHPl0SFKkUjNcC8r3tLFW1-WCdNCAAFjV
Good Fit
Use this when a world has many small props, decorative meshes, or modular pieces that use separate but similar materials. Atlasing is especially useful for static environment art where a group of objects can share the same shader settings and texture style.
It is less useful when objects need different shaders, different transparency behavior, unique animated materials, separate lightmap handling, or independent texture resolution.
Before You Start
- Work in a backed-up Creator Companion project.
- Duplicate the source meshes, materials, and textures before editing UVs.
- Decide whether the atlas is for PC only, Android/Quest, or both.
- Check whether the objects need opaque, cutout, transparent, normal, mask, or emission textures.
- Keep original source files somewhere safe so you can rebuild the atlas later.
Atlas Planning Checklist
| Check | Why It Matters |
|---|---|
| Same shader family | Unity batches more predictably when the objects share compatible materials and render state. |
| Similar texel density | Tiny props and large walls should not fight for the same atlas resolution without a plan. |
| Opaque vs transparent | Do not mix opaque and transparent needs into one material unless the shader setup actually supports it. |
| UV padding | Atlas islands need padding so mipmaps do not bleed neighboring colors at a distance. |
| Lightmaps | Texture atlases and baked lightmaps are different systems; do not merge meshes in a way that damages occlusion or lightmap control. |
| Quest budget | A single oversized texture can cost more memory than several modest textures if the atlas is careless. |
Atlas Build Steps
- Pick a small environment set, such as signs, shelves, clutter, or modular wall details.
- Count the current materials and check whether they use the same shader.
- Create an atlas texture with enough padding between UV islands.
- Remap the meshes to the new atlas UV layout.
- Create one shared material that points at the atlas textures.
- Replace the old materials on the duplicate objects or prefab copy.
- Inspect the result from close range and far away to catch mipmap bleeding.
- Use Unity's Stats, Frame Debugger, or Profiler to confirm the change reduced real render work.
- Test the same area in a built VRChat world, especially if Quest or Android support matters.
What Not To Atlas
- Objects that need unique shader settings or material animations.
- Transparent, glass, particle, decal, or special-effect materials mixed with normal opaque props.
- Huge surfaces that need their own resolution, such as hero murals, UI screens, or readable signs.
- Everything in a building if it breaks occlusion culling, lightmap control, or editing sanity.
- Source assets you may need to retexture often, unless you keep a clean rebuild workflow.
Testing The Result
Do not treat "fewer materials" as proof by itself. After atlasing, check:
- Whether batches or draw-call pressure actually improved in the relevant view.
- Whether texture memory increased because the atlas became too large.
- Whether mipmaps introduce edge bleeding or blurry small details.
- Whether lightmap quality and occlusion culling still behave as expected.
- Whether the Android/Quest version still looks readable at a smaller texture size.
Help! My atlas has colored seams or bleeding.
Add more padding around UV islands, check mipmaps, and make sure the atlas background extends the edge colors of each island instead of leaving unrelated colors next to them.
Help! The atlas made the world look blurry.
Check texel density. Important surfaces may need more atlas space, a separate material, or a higher-resolution PC texture with a smaller Android version.
Help! The draw calls did not improve.
Check whether the objects still use different materials, shader variants, light/probe conditions, or rendering features. Atlasing the texture alone does not guarantee batching.
Help! I want to atlas everything automatically.
Use automation carefully. Automatic atlases can save time, but review material compatibility, UV padding, source backups, and platform texture sizes before replacing production assets.
Official References
- VRChat Worlds
- World Creation, Optimization, and Community Labs Tips
- Unity Optimizing Draw Calls
- Unity Draw Call Batching
Related Docs
- World Creation Guide
- World Optimization Checklist
- Optimization Guide
- Quest Compatibility Checklist
- Unity Performance Basics for VRChat Worlds
- Optimizing Unity3D Worlds for Performance
Topics: texture atlases, draw calls, materials, VRChat world optimization