With this blog, I want to share my progress on a project I made. The goal was to have a Tomorrowland themed cinematic video of a book. I am now improving the project by applying the feedback that I received. Feel free to add your own feedback in the comments!
Final results of rework:
OLD project final:
The main feedback was that it lacked a bit of realism in different areas. The environment is too simple. Not enough global illumination and the gold didn't have any texture detail, taking away from the realism.
To start off the rework. I looked for, and added extra references to PureRef. I looked for reference of every step of the process. Reference of old books, materials, environments, design and the mood I am going for. The drawing at the bottom is my own concept which is the base of my book.
For the original book, I used a high to low poly workflow.
I started out by re-modelling the ornaments on the cover of the book. To save time, I only created the high poly version of the ornaments and I baked most of them into the cover of the book. By doing this, I didn't need to create and unwrap low poly versions of the ornaments, saving me time.
In the end, I removed the ornaments on the side as I felt they were a bit out of place.
To create the curly ornaments, I used splines with a custom bevel profile. This profile is another spline made into one closed shape so it can "sweep" my main curve.
Most geometry is assigned to the curved surfaces as I will be creating close-up shots and I want them to look nice and round. Since I now baked most of the detail in, the model is way more low poly and easier to texture than it used to be.
Next, I decided to use the UDIM Workflow to get more experience with it and to allow painting across my UV sets. I can easily choose how much resolution each UV set gets. Since I am creating close-ups for this project, I split the UVs into the cover, the ornaments and the logo with the paper. I used 4k, 2k, and 1k textures respectively.
When unwrapping, I try to pack the UVs as densely as I can to preserve as much resolution as possible.
In Substance Painter, I remove unwanted AO from the baked AO texture using the replace setting and adding the AO texture as a fill layer.
I use the exact same technique for the normals as well. This allows me to make baked normal maps for specific parts of the mesh (like only the lock), to then use masks to combine them.
To create the gold texture for the baked normals of the cover, I tried several different techniques. The difficulty was in creating an accurate mask with smooth edges.
In the end, I used a mask builder applied to my gold group mask. I removed all inputs and only used the micro normals to reference the normal detail I baked in. I substracted the borders using a UV Border Distance Generator with a blending mode of 'substract'. I then blurred my mask, added an anchor point for later reference and painted some extra details into the mask.
The rest of the texturing process pretty much came down to layering more and more wear and tear to all parts of the mesh. I usually start with a base material. Then, I add grain, stains, dirt, dust, color and roughness variation and a bunch of other details depending on what part of the mesh I am texturing.
This is an example of part of the texturing of the middle star formation:
I used the mesh distance fields in UE4 to create soft shadows.
For the candles, I added subsurface scattering with a custom profile to control how far the light shines through the candle giving a translucent effect. I placed them in a triangular formation to resemble a 3-point lighting setup. I also added a directional blue light coming from outside to simulate night.
For some specific shots, I added RectLights to fill in dark shadows or to highlight certain areas.
I came across a problem when rendering using the HighResScreenshot tool. The shadows were showing these artifacts. I tried changing the lighting from stationary to dynamic to see if it was caused by the baking of the light but it didn't work. I then found online that the tool creates many smaller renders and pastes them together. I tried disabling the flicker light function of the candles but it still didn't fix my issue. In the end, I redid all the lighting to be fully dynamic (except the directional moon light which is set to stationary)
I made a small cinematic video which I wanted to render using a level sequence. I animated several parameters of the camera such as focal length, aperture, focus offset and the camera transform. After rendering, there was a problem around frame 110. The camera went out of focus and seemed to shift back up for about 10 frames. Using the "use separate process" option fixed this issue. The option did however result in my textures not being loaded in time for the render queue. I fixed this by offsetting my sequence a few seconds to allow the textures to settle.
I tried to push the image as far as I could in UE4. I then added a post processing volume to change the contrast and saturation of the shadows, midtones, and highlights. Afterwards I did some touching up in Photoshop to balance the image more and to add a slight vignette.
I enabled render custom depth on my meshes. In the highresscreenshot tool I enabled include buffer visualisation. The SceneDepthWorldUnits was used in Photoshop to create Depth of Field. This workflow allows me to change the depth of field afterwards.
I am quite happy with the results I have compared to my old project. I encountered multiple problems I did not have before but I managed to find my way around them. In my opinion, a project is never really finished as there is always improvements to be made.
If there is suggestions that would improve the quality of my work, let me know!
Thank you for reading and have a nice day!