Bookshelf with textured books

Hi, in an archviz scene I’m working on I need to include libraries with a large number of books. Ideally, I’d like to texture each book’s cover, but this would lead to have hundreds of materials in the scene just for the books.
Is there a more efficient approach to achieve the same result?
Just to give an idea of what I mean, I’m trying to achieve something simpler, but similar to this (rendering by Jeffrey Faranial):
http://qgv6y6drlr2sy3es4blouyvd9.wpengine.netdna-cdn.com/wp-content/uploads/sites/3/2014/04/finalcam2-900x1058.jpg

You can use one 4096 texture with sixty-four 512 book covers or two hundred and fifty-six 256 book covers (!) on it, which reduces the number of materials. A couple of those materials would cover a lot of books.
What, specifically, is your concern? Performance? If you bake all the geometry and lighting, and don’t make books movable, you can probably get very good performance out of such a scene. If each book is movable – that probably will be less smooth (even if you don’t physically simulate all the books.)

My concern is both performance and shader compilation time (even if the latter is less of a problem). For using one single texture for many books, should I have a different mesh (with different UV unwrap) for each book o is there a way to use a single book object and offset the UVs?
Performance wise is having a lot of object instead of a lot of material better or worse?

Do you need so many diffrent books? maybe you make 15 diffrent and use some twice or more.

You can use the same mesh with different UV offsets using a material parameter. If you use static instanced meshes, the UV offsets could come from the per-instance variation parameter in the material. In general, if the books don’t move around, using static instance meshes would likely be the most efficient when you want to be able to initially place the meshes separately. Or you could just build one big, static, single mesh with a single material containing all of the books in Max/Maya – that would be the most efficient.

Thank you, very helpful!

Thank you, interesting approach. Would something similar useful also for placing the books on the shelves?

you could add random variation to its rotation.roll in its construction script and hand place them to avoid penetrations. or drop them with physics, then convert them all to a single static mesh.