Indigo High Detail Skin Render Methodology Test

Show off your final renders
Post Reply
4 posts • Page 1 of 1
riley1389
Posts: 51
Joined: Sat Oct 26, 2013 1:02 am

Indigo High Detail Skin Render Methodology Test

Post by riley1389 » Tue Feb 24, 2015 6:22 am

This was a test for me to find out the best method for using Indigo Renderer to find the perfect balance between the best result and the least amount of time it would take for Indigo to render a highly detailed human model with a Glossy Transparent material with Sub-Surface Scattering enabled.

So first, let's start with all the variables that are included in the process:

System:

CPU - Intel I7 4770K (OC @ 3.8GHz)
GPU - (MSI) ATI Radeon R9 290 (Core Clock OC @ 1.152GHz, Memory Clock OC @ 5210MHz) (Third-Party Cooler:ARCTIC Accelero Xtreme IV 280(X))
RAM - 20GB DDR3 G.SKILL Ripjaws 1666MHz (3x 4GB, 1x 8GB)
OS - Windows 8.1 Pro 64-bit

Modeling Software:

ZBrush 4R6/4R7
Cinema 4D R15

Other Software:

Adobe Photoshop CS6 64-bit
Indigo Renderer 3.8.26
Cindigo 3.8.12

Skin Material Values:

Type: Glossy Transparent

Enabled Material Attributes: Internal Medium, Exponent, Absorption Layer, Normal and Displacement*
IOR: 1.45
Cauchy B Coefficient: 10
Precedence: 2
Internal Medium Color: 52,27,0
Exponent: 40
SSS Value: 5000

Method 1 of 4 - A Big Fat Load of Squares:

The first approach I made to creating the most detailed model I could was just sculpt the model with an extremely high polycount and export it to Cinema 4D for rendering with ZBrush's GoZ plugin. However, due to Zbrush being built solely on a 32-bit architecture, it maxes out at 4GB and does not allow the user to exceed a model with 20,000,000 polygons, and Cinema 4D also won't accept anything so dense. So that method was instantly trashed.

Method 2 of 4 - The Vorhees Experiment

The second method attempted was to sever off only what was needed and get rid of the rest to reduce the total polygon count. The method did have impressive visual results but there existed two detrimental caveats; the first was that because of the detail needed for the skin's pores and other minute details, the polycount remained very high, and therefore took well over 48 hours to finish a render at a resolution of 2600 x 3300 (Odd resolution, I know. But I have have my reasons, leave me alone). The second caveat was the massive estimated increase in invested time I would be working on each scene with. Having to delete parts of the model every time I wanted to make a new scene could, in some cases, increase my time spent working by as much as 70%, mostly to properly sealing a mesh while retaining full definition and usability. So unfortunately, while it was at this point, my best method, it was not good enough.

Method 3 of 4 – This Class, is What We Call Displacement

The third method involved a completely new approach to how the model itself was sculpted and structured. Unlike Methods 1 and 2, this method involved additional measures that needed to be taken during the model's creation process. The first of these steps was to make use of Zbrush's “Geomtery HD” feature, and the TL;D is that Geometry HD takes a small portion of the model, isolates it and simultaneously adds subdivisions to the isolated segment in order to create a workaround Zbrush's maximum polygon limitation. What separates this from Method 2 is that the extra definition sculpted on the subdivided surface is not saved directly onto the model itself, but rather into Zbrush's memory. This allows the user to create use Zbrush's built in tools to generate both a displacement and normal map that retain the high definition but allow the original model to keep its original polygon count of 13, 464 quads (Eyes not included).

Now before I continue on, there are some numbers that need to be discussed:

So, having the original model of 13, 464 polygons. I subdivided the model four times prior to activating Geometry HD, which resulted in a polygon count of 861,570. Now after I activated Geometry HD, in order to get the level of detail I desired I decided to apply three more subdivisions giving me a final polygon count 56,515,000 polygons.

Now for those attempting to either replicate the result or transfer this method to their own workflow, consider the total number of polygons, as well as the resolution of your generated normal and displacement maps. What I mean by this is that you need to make sure that the total number of pixels in your maps equals or exceeds the number of polygons of your model. Zbrush only exports maps in 1x1 ratios and in multiples of 2 (i.e. 1024, 2048, 4096 and 8192). So usually for a HD render, most would go with a 4096 map as the sweet spot for quality and resource value. So to calculate the total pixel count, multiply the height by the width.

4096*4096 = 16,777,216px

We can obviously see that 56.5 million is significantly larger than 16.7 mil, so a 4k map isn't going to work. So how about 8k?

8192*8192 = 67,108,864px

It looks like an 8k map is perfect, because 67.1 mil is greater than 56.5 mil.

Now, moving on to Cinema 4D.

After importing the simple base model and applying both the material along with the normal and displacement maps, we come to the condition of the displacement map. Unlike with normal and bump maps, displacement maps don't simply act as, for lack of a better word, an illusion to the renderer, but displacement instead apply physical alteration to the mesh it's applied to, which is often much more effective, especially when large details are involved. However, but displacement maps require an equal amount of polygons compared to its resolution to obtain the best result. However after multiple approaches to attempting that level of subdivision, whether through Cinema 4D's subdivision mechanism or an Indigo's subdivision tag, or even a mixture of both. Indigo was not able to process a model with such an extremely high polygon count and would force close after every attempt. So method 3 was down the drain.

Method 4 of 4 – Is the Normal?

So, after that I thought, is there a compromise I could make, and there was. I realized that the displacement map wasn't needed. I went back into Zbrush and increased the base model's subdivisions by four, resulting in a polygon count of 861,570. This polygon count give my model all the large detail that the displacement map would. I then re-imported it into Cinema 4D and got rid of the displacement map. Because of the already increased geometry, the larger details were taken care of and the normal map handled the more intimate details such as the pores in the skin. This combination resulted in the same high quality in a significantly reduced use of resources. Because of this, the image, including the skin material with SSS was rendered at a resolution of 2600x3300 with a Supersampling factor of 9 in a total of nine hours and 47 minutes.

Full resolution image can be found here: https://flic.kr/p/r2S6L3

Image

User avatar
Oscar J
1st Place Winner
Posts: 2204
Joined: Sat Mar 31, 2012 3:47 am
Location: Gothenburg, Sweden
3D Software: Blender

Re: Indigo High Detail Skin Render Methodology Test

Post by Oscar J » Tue Feb 24, 2015 6:28 am

SS 9? :shock:

riley1389
Posts: 51
Joined: Sat Oct 26, 2013 1:02 am

Re: Indigo High Detail Skin Render Methodology Test

Post by riley1389 » Tue Feb 24, 2015 7:00 am

Yeah! Amazing, right? I couldn't believe it either. This was of course with GPU acceleration, but even so it was incredible. It seems that the use of a normal map for the finer details is definitely going to be my preference from now on.

User avatar
zeitmeister
2nd Place 100
Posts: 2010
Joined: Tue Apr 22, 2008 4:11 am
Location: Limburg/Lahn, Germany
Contact:

Re: Indigo High Detail Skin Render Methodology Test

Post by zeitmeister » Tue Feb 24, 2015 8:42 pm

Unless indigo supports pixel displacement normal maps are my weapon of choice too. :(


Cheers, zeiti
Cheers, David



DAVIDGUDELIUS // 3D.PORTFOLIO
·
Indigo 4.4.15 | Indigo for C4D 4.4.13.1 | C4D R23 | Mac OS X 10.13.6 | Windows 10 Professional x64

Post Reply
4 posts • Page 1 of 1

Who is online

Users browsing this forum: No registered users and 24 guests