Texture Array Slice Indexing / DDS support
This idea proposes adding support for sampling the slices from a DDS texture array or in Blender’s Shader Nodes, using an attribute, value or input to drive that slice index. It enables clean, per-face or per-object texture variation using a single material—without tiled atlases, UV hacks, or mipmap bleed artifacts.
Blender currently supports texture atlases, *.dds and UDIM, adding support for texture Arrays, would be be a huge help to artists working with decals, terrain tiles, and efficient real-time rendering workflows.
Why it's a good idea:
Current atlas-based setups require re-authoring textures for even small changes, which is time-consuming and hard to maintain. Adding more tiles increases texture size, introduces mipmap artifacts, and often requires padding to avoid bleed—wasting space. A texture array offers a cleaner, more scalable solution with predictable performance and simpler maintenance.
I envision this feature listed in the texture node options:
There would be two ways to access the array slices once the image source "Array" has been selected. Either through a pre saved *.dds file with texture array slices or a folder/series of textures with a naming structure similar to UDIM.
The array layers could be seen, generated and edited in the texture editor, also similar to UDIM.
This feature would position Blender as a more capable real-time rendering tool for storyboarding, presentation, and interactive experiences. It also improves compatibility with real-time asset pipelines like Unity and Unreal, and opens the door to GPU instancing and batching workflows.
Texture array slices, as supported in .dds files, are widely used in real-time engines. Blender already imports .dds; this would extend that support to include array-based sampling, making better use of an existing format.
This provides a clean, scalable alternative to texture atlases:
-
No UV hacks or padding
-
Eliminates mipmap bleed
-
Supports per-object variation in a single material
-
More efficient memory use and rendering
It’s cross-platform, GPU-standard, and opt-in, with minimal disruption to existing systems.
I would be eager to develop a working proof of concept, with full documentation and a test build.
0 Comments