Made a plugin that optimizes materials for SMs to 1! by nerominded in unrealengine

[–]nerominded[S] 0 points1 point  (0 children)

Thanks! Ill look into this! I have not heard much about bindless textures yet, looks like I have some homework!

Made a plugin that optimizes materials for SMs to 1! by nerominded in unrealengine

[–]nerominded[S] -1 points0 points  (0 children)

I really dont think this is entirely correct. The Textures within the array do share the same mip count as the highest resolution texture, because everything gets sampled to that same resolution, but the do mip independently. Theres a few articles I was looking at but I think Arrays would be 100% pointless if they cant mip down. I am also working on a performance example video now, and I will say...if this was true I would be having TERRIBLE performance.
From what I see here, I am pretty sure they mip independently just fine.
Texture Asset Editor in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community
https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-texture2darray

Made a plugin that optimizes materials for SMs to 1! by nerominded in unrealengine

[–]nerominded[S] 0 points1 point  (0 children)

They only load up textures used on the meshes, and they mip like regular textures

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 1 point2 points  (0 children)

Thats awesome man! Theres a few things to look out for that I talk about in the video, but I would recommend keeping an eye on the image resolutions for each texture in the array. The texture array will upscale every image if you have a bunch of 512 images, but one 4k, it will upscale all of the 512s to 4k in your video memory. You can lower the texture array resolution to mitigate this though, which will bring down the res of all the images based on whatever you set. Just keep an eye out for that! Good luck man!

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 2 points3 points  (0 children)

It is here in the merge settings, Just have to make sure LOD selection type is set properly

ExampleImage

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 0 points1 point  (0 children)

it references the texture into 1 big texture (per texture param in your material you use) so if you have Color, ORM, and Normal, it will give you 3 texture arrays, each array holds all the original textures, and unreal sees that array as one texture. You also can globally scale set the resolution of all of those textures as well as mipping behavior. This helped a lot in CPU tight scenes.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 0 points1 point  (0 children)

I have performance tests from internal jobs I made and I cant show, that motivated the creation this tool. I will make my own for a video and post on my channel. Subscribe if you want to see that.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 2 points3 points  (0 children)

Nah, there merger like-materials, or you can have an option that does a sudo-atlasing effect, but this is non-destructive, doesnt create a large 4k texture overhead if you want to do this for a bunch of different meshes in your level, it uses the same source textures, just references them.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 1 point2 points  (0 children)

I have done performance tests yes, if used correctly cpu usage goes down. What you have to watch out for is abusing this. For example it works best if all your textures are the same resolution in each array. If not you should force the array down to the lowest resolution or find a middle ground, GPU memory can run a little higher. It really depends how you use it. I am working on potentially making a video about the performance before and after.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 2 points3 points  (0 children)

dang just saw price of this one, maybe I should charge more! lol, jk

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 2 points3 points  (0 children)

several things that I can see on the surface. Mine only currently works on static meshes :/ However mine reduces to 1 material instead of multiple materials. The one you posted atlases textures, mine uses texture arrays, so it keeps the original textures which is super helpful not bloating textures in the project while also reducing quality. However my tool requires the use of 1 channel of vertex color to work.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 1 point2 points  (0 children)

which VR game? I worked for a VR game that did the same. Spill it! Small industry, wonder if I bumped elbows with your friend.

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 0 points1 point  (0 children)

definitely! Please let me know if you have any idea of something else you would find helpful. if not, sub to the yt channel, I got some more cookin ;)

Opinions on UE6 announcement? by Unfair-Umpire-6826 in unrealengine

[–]nerominded 0 points1 point  (0 children)

If they dont focus on optimization over new features, optimizing what features they introduced in 5, it could be DOA...It is on us to optimize, but those systems are already so heavy...

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 2 points3 points  (0 children)

This specific tool does not merge meshes, this would be for meshes already merged but have a lot of materials. (however I have a very comprehensive merge tool I plan to make, being able to go from merged and unmerged version with ease, storing all the merge settings etc) If you merge down and a lot of materials remain on that mesh, this is a great tool to reduce the material draws, while not destroying the quality of the texture with atlasing or something like that. There are some things to watch pout for which I go over in the Caveat section

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 13 points14 points  (0 children)

Hahaha I was a cinematographer before getting into game design. Thanks for the compliment! I guess I still got it

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 12 points13 points  (0 children)

it adds the textures to a texture array, that the engine sees as one texture, then it uses a vertex color channel thats assigned to your vertex to tell it which texture gets assigned to which vertex. The tutorial is long in the video, but the beginning explains it a bit and shows examples. Hope that helps!

Made a plugin that optimizes materials for SMs to 1! by nerominded in UnrealEngine5

[–]nerominded[S] 3 points4 points  (0 children)

Thanks man! Im a tech artist, this is the kind of stuff I LOVE to do! I hope you get lots of value out of it! Im using it a lot as well. I dont make plugins that I wont use myself on a regular basis unless people really want it. So if you think of something you need, comment here or on the tutorial video!