Making a Black Cat in Blender
Hi, my name is Lucas and I’m a freelance 3D artist, working half-time doing 3D assets for the app Prêt-à-Makeup and on the other half-time doing character modeling for animation or personal work. In the past three years, I’ve worked for several studios, mostly small/medium ones from Brazil like Pé Grande, Makako, Alopra, and 511 Filmes. I also did some modeling and look dev of the characters for the short movie Malaika, which is not released yet. At the beginning of the year, I worked with the studio 3dar modeling characters for the video clip Lil Dicky – Earth.
Idea of the Project
The idea for the project Black Cat appeared spontaneously. For some time, I wanted to do a cat with the best fur I could in Blender. Before I got some free time to start it, I was developing the idea and trying to visualize how I wanted it to look like. I know that cats love windows, so I tried to work around that. The spider is a personal touch – whenever my girlfriend sees a spider in our apartment she calls me and says “here is a friend for you to save”, so that’s where it comes from. The books are also a personal touch, they are “taken” from my shelf.
Besides searching for some references, I started blocking the cat and the scene using very basic shapes. At a very early stage, I also like to apply colors to the viewport and play with them. After I get satisfied with the composition, it’s time to go to the next step which is sculpting/retopo for the cat and adding more details to the scene. Whenever I need, I like to draw over the WIP images and write down what’s needed to be done or improved. The rest of the workflow is very common: UVs, textures, materials, lighting and tweaking every detail until I decide to move on to the next project.
I use Blender because it’s a powerful tool that can do everything I need for my work. It’s constantly been improved by developers and the community, works on Linux and is very light and stable.
In all the steps on my workflow, I try to go from simple to complex – keep things simple as long as possible and then add more complexity as I progress. My modeling workflow starts with blocking big shapes with primitive objects, then adding more details using sculpting for characters and poly modeling tools for objects and the scene.
Some of the add-ons I use to speed up the workflow are:
- Bool Tool to make booleans faster
- Pro Lighting Skies to quickly set up the scene and test different lighting very fast (this tool comes with a pack of HDR)
- Tex Tools and UV Packmaster are great for UVs
- Copy Attributes Menu, F2, Loop Tools, Node Wrangler (these tools come with Blender, and I always use them)
- for retopology, I really like Retopoflow
The fur was done using Blender’s hair particle system. To distribute the main hair I used Emit from vertices and added one hair particle for each vertice. This way we start with a very even distribution though I’m not sure if it’s recommended to use vertices distribution for animation. After that, I set up the children particles as interpolated. I think this method is better for the entire body. Then there is a bunch of other features to set up: Clumping, Roughness, Kink, and Hair Shape. I would love Blender to have sub-clump, but the particle system is pretty simple to set up. I’ve also used vertex groups for hair density and clump. With this, you can say Blender where you want the effect to be added (if you don’t want clamp in some areas, for example).
For the shader, I used the Principled Hair. The base color of the hair was created using Vertex Paint and all the other details were added using the Hair Info node. With the Intercept output of the Hair Info, you can create gradients from the roots to the tips and vice versa. With the Random output and a ColorRamp, you can add more color variation to the fur.
I used a warm color palette inside the scene because it would work well with the blue sky outside and the black cat would contrast well with these elements. The textures I used for the wood on the window and the glass are from the site Poliigon, the rest is done in the Shader Editor with procedural textures. I use Pointiness output from the Geometry node a lot, it identifies the edges of geometries so you can isolate and make masks to do whatever you want. You can see that most of the edges on the walls or windows have a worn effect, and it’s super easy to add that with Pointiness. The book sheets are created using a Noise texture stretched on one axis. The walls are also made with a Noise texture.
The lighting setup consists of one HDR from Pro Lighting Skies coming at 15 degrees from the left side of the cat. One Area Light comes from almost the same direction to reinforce the effect of the sun and outline the silhouette of the cat, spider, and other elements. In the inside part of the scene, there are two Point Lights, one on the left and one on the right, they work as fill lights. Lastly, there’s a Spot Light on the cat face with a very small intensity.
I also added a big plane with a green material under the window to simulate some green color bouncing from the grass and trees. You can see this effect on the chin of the cat and some parts of the window.
I remember having difficulties in three situations: with the fur, the lighting, and the scene. The fur was tricky because of the black color, the cat was looking flat at the beginning and if you brighten the color it starts looking gray. I needed to achieve a balance between the texture, shader, and lighting so that the cat fur looked actually black and three-dimensional.
The lighting took me a few days to make it look right and natural, during the first tries it didn’t look like an interior scene at all. I think what solved this part was to add the sun hitting a side of the window wall and consequently producing a nice shadow which makes it clear that the sun is coming from outside.
Finally, I needed to figure out the scene. I’m lazy to model scenery, so I made a frame border inspired by 2D illustrations, just to show a little bit of the ambiance.
Lucas Falcao, 3D Artist
Interview conducted by Arti Sergeev