The book uses a few tricks but the trickiest parts are already in Lemur.
The book halves are MBox meshes that are subdivided enough so that the DMesh has something to work with. Then I just mess with the curvatures and things until I got something I liked. That’s why I can animate the book opening and closing.
The page is just a plane but it doesn’t show up unless the page is turning. So, normally if you are viewing page 1 left, page 2 right… those pages textures are rendered right on the book half. When the page is turning, I add the warping page with page 2 on one side, page 3 on the other… and page 4 on the right book halve. Once the page is done turning then I get rid of it and put the page 3 texture on the left half of the book.
It’s a bit of fancy footwork.
The UIs themselves are rendered to a texture with each possible page taking up one quarter of the total area. I add a Lemur cursor listener to the book halves so I know where they were clicked and I turn that click location into texture coordinates. I then have a Lemur PickEventSession that I send the events to so that it can dispatch them to that offscreen UI.
So, as I said, the hardest parts are all standard Lemur stuff… but the wiring it up can be tricky and time consuming. Worth it in the end, I think.