this is an Excellent article, the way its set out with the vids and pics. very technical but not rambley. I learnt alot out of it.
Bob would have been proud
Congratulations Lukas:) Amazing piece of 3D parametric shader:) thank You for sharing Your knowledge:)
Marius Wittig and his colleagues discussed the sculpting, texturing and rendering process, which helped them to build a detailed CGI creature.
Hi, my name is Marius Wittig and I recently finished my 15-month diploma program for 3D Animation & VFX at PIXL VISN Media Arts Academy in Cologne, Germany. My main focus is modeling, texturing and shading. And I love creatures. I did this long before I even thought about starting a career in the VFX industry. Creatures fascinated me and with the improvement of computers and programs, it was getting harder and harder to tell what was real and what was CG in a movie. This was what really got me started to really think about how to get into this industry, I just couldn’t believe how well done visual effects can be, how real it looked. I remember when I left the cinema after watching Avatar, the first 3D movie I ever saw, and that I was so stunned by the effects this movie had. I had no idea how on earth this was made, but I knew that I want to do this as well. It took me several years, an apprenticeship and one year of working in a company manufacturing car parts, to save enough money to start the diploma program at PIXL VISN. During this program, I had the chance to learn something about every major part of an industries pipeline. I modeled, animated, rigged, textured, comped and so on. The program was intense and you spent every day of the week working long hours, but this is the only way to learn that much in just 15 months. In the end, there was time to create a demo reel, and this is where I started looking for concepts because I really wanted to create a creature.
That I would make a creature off of a concept for evolving was not planned. Even though I always liked the games style and artwork very much, it was luck that I found an Evolve concept, which would fit my needs perfectly. I just knew, that for the first complete project of a creature, I didn’t want to overwhelm myself with a too large project that I couldn’t finish in time or would be too hard to do. Having this in mind, I searched for concepts. Pinterest is a great tool for finding a direction you want to go with a rough idea you have because it is really great in suggesting an artwork that you might also like when you watch an image. And so after some time of searching, evolve artwork was shown, but not any artwork, but the ones with the individual style of Stephen Oakley. Most of the hero creatures were a bit too heavy to fit my time frame and so I was very happy, that Stephen also drew some fauna concepts for the game, where I found the Reaver concept. I instantly fell in love with the fish-like head and the spikes on arms and back. Also, the teeth could be a nice shading challenge because of the new “random walk”-SSS mode in Arnold. I immediately started gathering references to all aspects of the creature.
The program PureRef is just the best when it comes to gathering a lot of references in an easy to overview and manage layout
My process starts with basic shapes. Starting off with a DynaSphere and pulling with the move brush and building up the volume with the ClayBuildup and Clay brush until a rough silhouette of the creature appears. Very helpful is always to check the silhouette with pressing the “V” key which will, assuming that the default matcap red material is assigned without using the “fill object” feature, fill the model flat black and so the outlines are clearly visible.
You can also toggle perspective view on and off with the “P” key, but when sculpting, always have perspective on, nothing in the real world can be seen in orthographic view, so be careful with that. From this stage on I just went step by step into more detail. Very helpful was to understand the anatomy right. So I went to a phenomenal website called anatomy4sculptors, who have very good reference images and even breakdowns into basic shapes especially for sculptors. This helped massively creating shapes correctly. The thing is, that when you built up the character considering muscles, bones and bony landmarks, the shapes will automatically look right. Then you just have to cover those with skin and add some fat cushions and skin wrinkles. Often times, you tend to go too far into detail before you get the anatomy and the shapes right, which will always lead to a character that may look somewhat right, but you will always feel that something looks off. So don’t rush this!
For this stage, I adapted the workflow used by Javier Blanco or Gael Kerchenbaum. It’s a workflow, in which you sculpt a detailed pass ready model in Zbrush, then do the retopology and UVs and then move on to Mari. In Mari, you paint a Displacement pass which you will later apply in Zbrush. This way, you can profit from the incredible amount of information good textured can deliver you. You can preview this pass as a bump map in Mari, or, when your PC is capable enough, even as Displacement. Javier and Gael both did great tutorials for this workflow, so I don’t want to repeat this in too much detail.
Returning to the question, this workflow leaves a lot of detail on the geometry. Of course, you could convert parts of your displacement detail easily into a bump map, but I wanted to squeeze as much detail as possible out of the geometry (Arnolds Displacement-Autobump converts the detail the mesh couldn’t handle automatically into a bump map). Before I started the displacement painting, my mesh looked like this:
As you can see, to this state I sculpted muscles, bony landmarks, and wrinkles to a good base. The workflow gives room for even finer details after the displacement painting. Teeth and were easily modeled by using the snakehook, move and other basic brushes. With things like spikes, teeth etc. I like to break the symmetry with using it until I am overall happy with the object, and then turning it off and moving, bending and rotating some teeth. It’s done really fast and can really add to the realism of your creature.
Next steps would be a retopology in Maya, UVs, and baking of the displacement map as well as baking the utility maps like cavity, AO, and curvature.
For the retopo, I did go the classic way of manual dragging out the quads with the quad draw tool in Maya.
For the UVs I did go for 7 4K tiles. I created them symmetrical so I only needed to texture one side and could mirror them over.
Now, where the base is ready, I started painting my displacement in Mari. I collected maps of fish, turtle shell, crab skin and human skin. Texturing.xyz was the source of choice, I highly recommend checking them out. But before you start painting, you should do one thing: create maps that are combined. What I mean by that is, that you use the RGB-channels of your image, to plug in different grayscale maps, so that you paint for example displacement (red channel), spec roughness (blue channel) and spec weight (green channel) at once. To combine those, just load the maps into photoshop, press ctrl+a, and ctrl+c to select and copy the whole map, then you go into channels of the first map and ctrl+v paste the map into the green or blue channel, then repeat for the channel that is still empty. What you will get is a funky looking map, but when you watch only one channel, you will either the displacement, spec R or spec W. This of course only works for grayscale maps.
A sample of forest ground with combined displacement, gloss and reflection maps.
What I then did in Mari was to create a channel for every map you want to create. Even though at this point, you just want to paint the displacement map, it saves you work later on. Then you create a paintable layer and group it. The group gets an adjustment layer called “copy channel”, which lets you display the R, G or B channel of your layer above. Gael Kerchenbaum also did a great tutorial on that: tutorial
For the displacement painting, there is no special technique I used. As always: keep your channels, layer, and groups organized. Name them properly and delete unused stuff. This way you understand what you did even months after working on it as well as it gives you the possibility to hand you work to other people if needed. I liked to use the edge masking mode and backface masking to prevent mistakes when projecting.
To preview your displacement as bump map, you have to create a new shader. Go to the “shaders” tab and click the plus. For my case, the aiStandard was the shader of choice, because I would later on render in Arnold. Then you plug in the channel in which you painted the displacement in the “Bump Map” slot of the shader, set the lighting mode to basic or full and the displacement is displayed as a bump map.
As you can see, I decided to give the creature a really fishy look by using fish scales for most of the body. I broke this up with bumps and cavities of the crab skin starting on the back with the biggest bumps gradually shrinking in size and height down the back, arms, legs, and head.
For the claws, I used the turtle shell and for the tongue a mix of procedurals (cloud, turbulence) and a tiled image of a very bumpy surface.
To get this amount of detail, an overall amount of 114 mio polygons, separated into different body parts, was needed.
Because the reference image did not have a color pattern to use for texturing, I had to search until I found one which I liked a lot, it was from the “Beneath the waves” challenge on Artstation (concept artist: Taran Fiddler).
After choosing a color scheme and collecting more references for details, I started in Mari. First I started off with dark, light and the blue/green skin placing it roughly. I like to use the brush “tRex” because it got some jitter setting, which slightly breaks up the painted edges. This automatically creates subtle details. For transitions of any kind, the “Supersoft” brush does a great job. From there on, it’s slow and steady progress of painting a little here and there, breaking up shapes and colors, adding color variance etc.
A cavity map can help show dirt in concave parts of the mesh or show different colors of skin. For example, I used the cavity to let some light skin shine through the green and dark skin and vice versa. It was a lot of trial and error to find the exact composition of all layers to fit my taste. For the final touch, I added light and dark scratches which may come from the creature climbing rough terrain or from battles with other creatures. Always look for reference and use your imagination for where such details make sense.
To be honest, there is no magic behind getting good rendering results out of Arnold. I built up a classic lighting setup using a key, fill and rim light with some smaller lights to highlight some parts in particular. Using light links, I removed the highlights of all the lights from the eyes and only added the HDR light to it. I also used planes to block out some parts of the HDR. Two light and plane setups were created so that everything looked nice even from the creatures back.
The planes you see, were not visible in the render, because I changed out the background in Nuke later on. This way I saved a lot of render time. I created five cameras, playblasted them out and checked if they matched well after another when I cut them together using Adobe Premiere. Playblasting and general use of Maya were sped up drastically when I exchanged the original rigged model with an Alembic Cache.
To have maximum control with compositing afterward, I created light groups which will be saved as separate AOVs. Also: Never forget to add Cryptomatte. It’s a lifesaver.
Example: Light group for fill light called “Fill”. On the right, you see the other light groups like “Key”, “Default” etc.
For the samples, I used the “Removing Noise” workflow which can be found on the Solidangle website. Not all channels have to be 100% clean, the “Denoise” Node in Nuke can work wonders and really save you render time.
The base rig was done with my own Auto-Rigger which is a python script I wrote. With the Auto-rigger you can skip the more redundant parts of rigging and start animating and build more complex setups. At the time I was doing the rig it was only meant for posing the character so I did not build on top of the rig. After the rig was in the hands of Philipp, he modified it further to fit his needs for animation.
The animation was done in Maya and the process was fairly straightforward. Deciding on a good reference took some back and forth. After a decent blockout, I asked some friends and colleagues for feedback. Considering their ideas I also wanted some motion around the neck. For this, I rigged a rather unconventional cluster setup which gave a bit of neck jiggle and a nice breathing motion. Also, for this kind of hand-wrist motion, I set up the rig differently to get better pivots and make life easier with grabbing and holding on. The fingers were also modified to make animation easier.
A: It is hard to overlook the whole process, but I would say it took about 6-8 weeks from concept searching to the final result. It also was the first task of this extent (for a creature), I had to learn Mari and the previously described workflow in the process and so on.
The most time consuming was the texturing for me. Like I described earlier, it was a lot of testing of what matches and which technique may be the best to acquire the wanted result. So this can take quite some time to achieve, especially when you paint a fictive creature. I also think that tasks like lighting or the sculpting of a solid base can’t be rushed. This just takes its time and you should work on it very focused to get a great result in the end, at least for me that is true.
I want to thank the reader for taking the time to read me a little longer than a planned article. I hope you get inspired, learned something or found it at least entertaining.
Have a good one.