Decreasing texture size depending on distance LODs

I am now at the step of LODs. With the help of Lods, we can control the performance of a scene by reducing polygons. But how to make the 4k by 4k texture decrease or increase dynamically its size relative to the player. that is, at the maximum approximation, the texture of the material = 4k, at a distance of 5 meters it becomes 2k at a distance of 10 meters 1k, etc. How to do it?

Can’t you just set a different material for each LOD that refers to different quality textures?

2 Likes

Hi @didzey

There may be other solutions but you can create different materials and each material has a separate texture eg : a mat for 2K , a mat for 4k, etc , then with a script canvas graph based on the distance you can load the material you need, This project and this video tutorial can give you a better understanding.

I hope my idea is useful for you and others.

2 Likes

You don’t need to make LOD materials for this. You can make them of course, if you like, but there is an automatic way to handle this.

When an image map is processed for Lumberyard, it will generate a set of mipmaps. Whatever size your texture is, it will be halved by a power of two down to 16x16 or 5 mip levels depending on the starting size. If your texture is 4096 squared to start with, you’ll get mipmaps for 2048, 1024, 512, 256 and 128.

The mipmaps will load automatically depending on camera distance.

If you double click a texture in Asset Browser, the Texture Settings Editor will open. You can see the mipmaps for the texture and make some settings adjustments for them. This doc page is unfortunately far out of date, but mostly still applicable:

3 Likes

I assumed he wanted more control over it than mipmaps allows.

this is exactly what I need! Thank you! But tell me, I use substance-material, what should I build a mip map for them?

I have not used Substance with Lumberyard yet, but there is a gem available for Substance. You need to enable the Gem in Project Configurator for your project and rebuild your project. There is some documentation for how to use SUustance with Lumberyard, but I am not sure how complete or accurate it is:

I do have Substance, and I can maybe try to hack my way through this with you if you have issues.

I create materials in the Substance Designer and load their engine and add them successfully. But the question concerns the topic of lods. If the texture has dense detail, then it starts flickering when the player is located far from it. The only option is to reduce the resolution of the material. But I don’t know how to do this with regard to the submissions material.