Texture 2D Array Support

I Need To Be Able To Use It In A Future Release. There A Merge On Pending For It On Github. Can We Have More Info On That ? Thanks.

+1 for this! Even Unity have this for quite some time, c’mon guys!

Yeah, it would be nice if it would finally be merged.

Here is the link to the PR: https://github.com/EpicGames/UnrealEngine/pull/2340

This is one of those features though that few projects absolutely need, but those that do pretty much require it. At the same time, while not necessary for other projects it can be useful so I’m sure more people would use it than we see directly asking for it if it was finally added to the engine. I use it daily and couldn’t do some of the things I want to without them.

I hope this can be finally merged, I’ve been attempting to maintain it as I find time.

It really should have been included in first release of the engine.

@Koderz , do you have any documentation for your support to make it work with the material editor ? you can email me at io66ri@gmail.com. Thanks.

I’ll try to find some time this week to document it. The overly abbreviated version is you’ll need to build the texture array itself outside the engine for now in something like PVRTexTool and export it as a .DDS Direct Draw Surface texture array. I believe the format is BGRA8 encoding. After that in the material you’ll want the 2d texture array sampler which then works exactly like a normal sampler except that it requires a vec3 input so the simplest way is to Append the W component to the UV texture coords.

Hopefully that helps, but I’ll see if I can do some better docs for it this week.

Here is the same request on answerhub.

thanks , I was able to make it works using the BGRA8 format. Hoping now that it can be merge in a future release.

I just threw a quick comment on it so that both places show I’m still around here. I’m still up to help with it, but I’m severely time limited right now.

That’s good! The format requirement is probably the big thing that trips most people up as the .DDS importer in UE4 doesn’t support the full range of .DDS files. Hopefully this can be merged, even if it’s merged as it stands now, still requiring PVRTexTool is still far better than requiring a full custom engine build to use them.

Looks like it is nice time for a bump.

Can someone tell me what’s the purpose of a Texture2D Array in materials?

If I am not mistaken, it is the equivalent of having a texture where each mipmap level contains an array of images of the same size. Array Textures can have mipmaps, but each mipmap in the texture has the same number of levels.

There is a high cost related to texture switching. This is why Texture Atlases were made.
Array Textures are similar to atlases, but texture arrays can store multiple layers of texture data for objects and don’t have some of the problems that atlases do.

As far as i am aware, there are 1D Texture Arrays, 2D Texture Arrays and Cubemap Arrays.

from my experience in openGL, it seems that texture arrays are good for instancing draw calls. Also things like terrain materials are crazy expensive, so i would imagine you could reduce some overhead by having terrain mats as texture arrays.

(if im wrong someone please correct me)

+1 for this , I think for editing/creating them directly in engine they could easily recycle Reference Viewer as starting point :wink:

Can anyone from Epic bring this up within the team and let us know if it’s something we’re going to get sometime in the near future?

The last thing Epic said was this comment from @RCaloca on the PR:

4.19 is definitely near future if that’s still the case.

Does that mean we’ll finally be able to texture landscapes without losing +50 frames? oh boy… :stuck_out_tongue:

not to sound negative but I get the feeling this won’t make much of a difference :confused:

Main problem will any material will be the maximum number of textures you can use at once… even packing textures with RMAH can’t do much. I have a great landscape material in mind, but it is impossible to achieve. If a texture array would solve this, Im not sure, but would be great to see it and explore.

I’d disagree. Won’t be 50 FPS out of thing air of course, but pixel shader load, caused by landscape, will be greatly reduced.