I want to prepare about 1000 materials and make multiple custom material pickers

I want to prepare about 1000 materials and make multiple custom material pickers.
I am worried that the scene will be heavy.
Is there any good way?

With 1000 materials the frame rate will likely be low, as each material needs to be rendered separately. Could you have 1000 textures in your custom picker, but use these textures on a smaller number of materials?

I still don’t know how many materials there will be. The details of the plan are not yet known

There was a problem with how to change the texture of a material.
If the unmodified material has roughness or metallic textures imported from the file, the roughness and metallic before the change will remain even after changing the texture.
When changing the texture of a material, I’m worried about how the texture looks.

I have little knowledge of 3D modeling.

The roughness, metallic and bump textures can be changed using the JavaScript API, similarly to the base color texture, see: GitHub - shapespark/shapespark-viewer-api: JavaScript API for interacting with the Shapespark 3D scene. . So, in your custom picker you could change base color texture together with metallic & roughness textures.