Piotr Zielinski talked about making an ancient book in ZBrush, explained the texturing method, and discussed the advantages of Marmoset Toolbag.
Hi, I’m Piotr ZieliĆski and I’m a Character Artist from Cracow. Generally, I’m self-taught and I know most of the modeling stuff from YouTube tutorials, but since August 2019 I’m a member of Georgian Avasilcutei’s mentorship program. Currently, I work in Flying Wild Hog as a Character Artist, before that I worked on a small indie VR project.
My Danish Book project started as a part of the whole character that I’m doing for my portfolio – a concept of a knight girl who holds a book. While I started working on a character, Georgian was doing his fantasy book set, and if I remember correctly I just saw the Danish one while he was looking for references. His work was a quality benchmark, but the main goal for me was to do something more complicated than him, so when the time came for doing my book, I already knew what I was looking for. I didn’t have to spend too much time on Pinterest before I found it.
It turned out Pinterest pictures lead to the whole album published by the National Library of Sweden on Flickr with great quality and multiple angles of the piece – that helped me a lot with all those patterns, the book has because I wouldn’t be able to just figure them out from one 3/4 shot.
As I mentioned before, reference pictures were great and taken from different angles, so I was able to put them into 3ds Max and overlay them with my models later to place everything in the right places. Before that, I just had to make sure they are more or less scaled the same.
Covers
I started with some basic poly modeling and when I was happy with the proportions I took everything to ZBrush for further adjustments.
What I did in ZBrush was pretty straightforward first I DynaMeshed all pieces together then ZRemeshed, SubDivided, projected the first two SubDiv levels, and then SubDivided further to be able to add more details on the edges.
While detailing I used Trim Dynamic and Dam Standard brushes to create a bit of edgewear and variation.
Then I focused on making more unique details, some of them I found on the ref pictures:
The others I just added by myself to have more interesting spots that I knew were going to bake well and add more information to the Curvature Map.
Hinges
First I did a BaseMesh utilizing splines in 3ds Max:
After this, I took them to ZBrush and did the same process as on the covers in addition to breaking the symmetry I applied before.
There is one detail appearing on both the cover and the hinges – "scales like tubes" placed around the covers and on the bottom of hinges. When I started analyzing it I realized there was a spiral pattern appearing so what I did was:
I’m aware that what I got was not ideally identical to the reference pictures but I decided that it was good enough for me to move further.
Patterns
Almost all pattern pieces are placed with splines in an orthographic view. I used Radial Mesh for all those snail-like ones and rectangular mesh for the rest.
To be honest, there was nothing too complicated, just tedious and boring actions. I PolyModeled the pieces and used them around the whole cover because they were appearing in some other places as well:
Because I placed all the patterns in the orthographic view, the spine pattern needed to be bend to fit into its place nicely. To do that, I detached faces from the back of the spine cover, you can use the By Angle option to make it fast if you have more divisions than I had.
The next step was to straighten the piece and scale it up so it covers the whole pattern nicely.
Afterward, I utilized the combined power of Morpher and Skin Wrap Modifier to bend the whole pattern to the correct position, just remember to:
Once I had everything in place I put a double TurboSmooth on top of all patterns and exported everything to ZBrush. Detailing the patterns was very subtle since they are once big detail in itself just a bit of edgewear with Trim Dynamic.
The last thing left about patterns is those thin "snail" details. The problem was they were just tubes and I needed this twisted detail – I used Displacement for that. For the Displacement to work, I first needed to have UVs. I used RizomUV to make them. Utilizing its strengths, it was a very fast process. What I did was:
Displacement texture was a simple stripes tileable pattern with a 50% grey color for the caps I stacked before so they didn’t deform.
Lastly, I imported wires to ZBrush (sending them as .fbx format will import the texture as well if you had it applied in your 3D application). Then just had to subdivide them a few times and apply the displacement, I also added a bit of Inflate afterward to get a better result.
Pages
I started with stacking on top of a lot of planes on top of each other with a shell modifier. Then I pushed the ref planes a bit inside them so I could see what I was doing and moved each by hand with a soft selection to match the silhouettes from the refs on both sides
Note that the thickness of the pages is a bit exaggerated. Because I was doing a real-time asset, I knew that I won’t be able to support that thin details to actually make pages with an accurate thickness.
Then I took them to ZBrush for some sculpting. Pretty fast I realized that I can’t really subdivide as much as I want due to way too high a polycount. What I did to solve this was isolating the region inside the pages. I knew is not going to need any sculpting masked it out and on top of the mask subdivided – this way I had more resolution only around the pages exactly where I needed it.
First, I did all those non-uniform details, pages that stick out a bit some that got folded, and general non-uniformity on the surface. I used Move Topological for this so I could easily select and move particular pages not affecting the rest at the same time
By default, ZBrush doesn’t have viewport antialiasing and while working with objects similar to book pages it might be hard to see what is going on. I found a solution to this - what you need to do is:
I did the floral pattern on the side of the pages by masking it out using the whole ZBrush window see-through, then I deflated and sculpted it on top.
Finally, I added those square-like details on top:
I wasn’t super accurate with them, but again I was aware they would not be visible without using too many texture sets, so I decided to exaggerate them a bit so they can show off a bit easier on the bakes.
I handled page opening with Bend Curve Deformer in ZBrush, an idea I peeked from Georgian’s books streams.
First, I gathered some references with old paper pages, I felt they would work well with my book – yellow-ish with some visible dirt and stain marks.
For the text, I googled some close-up photos of some old books with nice colorful ink decorations that I liked and used them as a texture for my pages.
I plugged them into texture input in my layers, first positioning them by hand to fit the page space well:
Border
For the border:
Covers
The most important thing to achieve good looking and having nice depth patterns on the textures was parallax that utilized a Height Map baked into planes from the high poly. Without it, those are just flat surfaces with opacity that are not looking appealing at all.
Well, first of all, Texturing in Marmoset 4 is great, and I totally recommend it to everybody to at least try if they are skeptical for some reason. I could just stop right there but let me dig a bit dipper, I would like to point out a few Marmoset 4 features that I’m enjoying the most so far:
Obviously, nothing is perfect, and there a few things I would love to see implemented in future updates:
I started by choosing the right sky for me, I wanted something with good contrast, so my metal ornaments would shine nicely. I also wanted to have light sources from different directions – I have chosen City Hall Balcony.
I haven’t used any post-production settings except for the Hejl tone mapper on all cameras. I generally use this setup for everything I do in Marmoset because it makes my colors look better, and I have more contrast than with linear mapping.
This project went relatively fast for me, compared to portfolio characters that usually take few months to finish. The whole thing took a week for high poly, about two weeks of after-hours retopology since there was a lot of tedious parts (such as open pages) and I was a bit lazy about it, to be honest, and about a week (full time) for texturing and the whole presentation.
The main challenge during this project was to not get overwhelmed by all those pattern details on the covers and pages that you can see looking at the reference pictures for the first time. The solution was to take it slow, break it into smaller parts, and put everything together one by one. My advice for making such a prop would be to find one that has a lot of references because it makes life way easier and lets you focus on modeling/texturing. Once you have that, take it slow and make it as good as you can. Don’t rush it, there is no point in choosing a complicated asset and just failing to deliver because you were too impatient to finish it properly. The last thing, as Georgian once said: "If you want to make a portfolio piece choose something that people will be asking themselves, how the hell did he/she do it?, not another AK-47 or a radio station that even if done really well can get overlooked because it is just another copy of the same thing." I totally agree with that and I hope my book fulfills this rule.