Let’s Get Started

Hello everyone! My name is Ľudovít Lukáč, a freelance character artist from Slovakia, currently living in Brno, Czech Republic.

In this article, I will show you how I created my recent project named “2000 Sweet Traps Before Dawn”, where I’ll give tips and tricks on optimizing your 3D content and managing your 3D production workflow. If you want to learn to use Marmoset Toolbag to bake, texture, and render delicious candy and chocolate whipped cream sundaes without giving in to sweet temptation, you are in the right place.

The Initial Idea

The initial idea was very simple. The piece was supposed to be a bust of a vampire, which could also serve as a bowl for some snacks, and the eyes could be lit up with a switch. This was also a project that I could consider 3D printing in the future.

The idea quickly changed after I modeled and rendered the bust. I decided I wanted a still-life scene that included other objects, something in the style of the classic Flemish still-life paintings. I wanted to include bowls, cups with raspberry juice instead of wine, lots of candy, and flying bees. The vampire bust was supposed to have a sticky mouth as if it was munching along with the bees.

At this point, I had already created a scene with the bust where I tested certain workflows and identified some potential roadblocks. The main test was to see whether Toolbag would perform well and handle a scene with various high poly meshes, and it handled things very well. From then on, I started creating my new still-life candy scene.

The second deviation from the initial idea came when I changed the bees and background. I tried several backgrounds but wasn’t satisfied with any until I had an idea to include a damaged castle wall with small gothic windows for bats to fly through. It certainly had an element of humor, and I found it visually interesting. Also, I had made a bat model long ago, so I abandoned the idea of having bees. The final blow to the initial harmless idea was when I chose the blood texture for the background wall.

Below is a compilation of images showing how my idea evolved over time.

Sculpting

Most of my 3D models were modeled and unwrapped in ZBrush, except when I found it easier to create something in 3ds Max.

I try to have as many details as possible in the high poly models. This helps when creating textures, and often, it means there is no need to add more details in the texturing phase. For example, the normal maps for all sweets are baked, with no extra details added later. However, there are more or less obvious cases where it is beneficial to have it on textures. In my case, it was fabric details, bumpy details on metal materials, and cracked plaster on walls, to name a few.

It’s good to familiarize yourself with materials in the Library beforehand, as it already has over a thousand free materials, smart materials, textures, and more asset categories to use in your Toolbag project.

Creating the Low Poly Meshes

Since this was a personal project, I was not overly concerned with the topology or UVs’ appearance. I created everything how I saw fit so that I was enjoying the work. The most important parts of creating a bigger project is how quick you are and the appearance of your assets in the final render.

However, doing everything carelessly is also a bad idea. The key is to find the sweet spot. I’ve been making low poly meshes for games for over 20 years, and only now am I learning how to be happy with less-than-perfect topology and a higher percentage of empty UV space.

Toolbag can handle a relatively high number of polygons, so most of my low poly meshes were not low, but rather something between mid and high poly. The topology of my “low poly” meshes vary. I would either use a lower subdivison of the high poly mesh or, more commonly, I would decimate it.

First, for meshes without UVs, e.g., the bust, bowls, and the lower parts of cups. First, I decimated them to a relatively low number of polygons, created polygroups where I wanted seams, and then made a UV. After that, I subdivided them so these meshes were dense enough. Then I reprojected the details.

However, the bust required slight additional editing in 3ds Max. The edge flow of decimated meshes is disorganized, and subdividing the mesh won’t help in cases with clean and sharp shapes. In my case, it was mainly around the cut on the head.

When considering the number of polygons suitable for a particular mesh, it is good to think about the mesh’s complexity, size, and total expected number of meshes in the scene. It makes a big difference to have a mesh with 20k tris or 5k tris if there will be 100 of them in the scene. On the contrary, when working with a smaller scene that includes fewer meshes, increasing the number of polygons will not matter. For example, the tri count for the sweets varied from 1.3k to 400k tris. The spiders and heart candies had the highest tri counts. Each tiny crystal of sugar on them is a box. But I have only four big hearts and four spiders in the scene, so no big deal. The confetti and small parts of sugar scattered in big numbers in the scene are meshes I consider low poly.

UV & Baking

When creating UV for meshes, deciding which meshes should share the same UV space and which are suitable for their own texture is good. For example, I planned to have the same metal material for the bust, the bowls, and the lower parts of the cups. It would be convenient to have this together on one texture, but I divided it into three textures since I wanted to have as much pixel density as possible.

  1. Bust (8k texture),
  2. Two bigger bowls (4k texture),
  3. Smallest bowl and bottom of cups (4k texture)

I could have put the bowls and metal parts of cups into one texture and use 8k texture, but this would have had a higher pixel density than the bust. I decided to have similar pixel density by splitting my materials into two 4K textures to save on GPU memory. It pays off when it comes to such large textures.

The candies, conversely, are small, as are their textures. Most of them are only 1k textures. I put those of the same type on the same texture, but most candies have their own small texture. It was easier this way and wouldn’t be much better if I put different types of candies into one texture. Every type needed a slightly different material setting that ultimately wouldn’t lead to having less materials. It’s a different story if you make game-ready 3D models, as you would have to think about draw calls too.

Having each color variation as another texture was also beneficial, so not all variations were on a single texture. I assigned these variations to candies I’ve already placed and did this often. However, I had a different experience with the confetti, where there were so many of them. I scattered the confetti on the table and had several color variations in one texture. Overall, I had 121 materials, but Toolbag handled it well and there were no problems.

When baking, I use the default settings except for Samples, where I set 16x for all meshes. To prepare for texturing, I usually bake the following map types to use as Input Maps for my Texture Project:

  • Normals
  • Normals (Object)
  • Curvature
  • Cavity
  • AO

Sometimes, I would bake Thickness and Vertex Color if I plan to use them for texturing. If I wanted to use Vertex Color (Polypaint in ZBrush) as a Material ID input map, I would set its Samples to 1x so that masking through color selections wouldn’t be problematic. But I didn’t need it in this scene. I didn’t bake Height maps either because I had dense enough meshes. This way, I managed to save some memory on the GPU.

Creating the Scene in Toolbag

Assembling the scene in Toolbag with several meshes, instead of importing a pre-assembled scene from another DCC, could be challenging yet satisfying. It has pros and cons, but I love working in Toolbag’s viewport with ray tracing enabled because what I see in the viewport is what I will get in the final render.

I started with importing the bust, followed by a tablecloth, bowls, cups, and baskets. I positioned them so they would look good from the main camera’s perspective, and then I duplicated and placed the candy as I saw fit and did the same with the confetti and other smaller meshes. I imported two necklaces and the “hair” of the bust as single units, already scaled and positioned, but these were exceptions. In the end, I added meshes in the background and bats, requiring more lights and camera adjustments.

Here are some tips I’ve gathered from my experience with this process:

  1. When placing candies and confetti, I often changed the Viewport Quality from Full to Draft, and I also found the Lighting (Direct) view mode very useful in Render Passes / Lighting. It doesn’t show the colors, but the viewport is very fast, and you can see exactly how close the meshes are to each other. This is essential if meshes are not supposed to overlap or hang in the air, for example.
  2. If there are many meshes in the scene, create groups to stay organized. It is good to group the meshes according to where they occur in the scene. For example, having candies placed in numerous different groups would have been very confusing to me. In comparison, having a basket in one group with all the candy meshes inside was beneficial. I could duplicate the whole basket and position it in a different place in the scene. Likewise, I could hide and unhide precisely what I needed with one click, which I often did.
  3. Toolbag allows you to auto-reload files you have already imported, which is helpful if you want to import meshes in progress to check, for example, how it looks in Toolbag and with materials. It came in handy for those larger sugar-coated heart candies, like the sugar crystals. It’s great that any changes you make to the position, scale, or rotation of a mesh in Toolbag remain the same when reloading a mesh. Any materials to these meshes also remain applied. I used this process for the background, where I needed to rotate the entire wall to fit exactly how I wanted into the shot. But I didn’t want to have it already rotated in ZBrush, because it’s better to work on non-rotated models. Note that when reloading files, any meshes duplicated or moved into the file reference object in the Scene hierarchy will be deleted, so it is good to begin duplicating meshes after they have been finished. Even if you move them to another folder/group, it will not help because, unfortunately, these are not instances and will not change after reloading.
  4. Create folders/groups for materials and name them to identify them when you read them immediately. It will save time if there are many materials in the scene.
  5. If you hover the cursor over a mesh in the viewport with an applied material, you can click RMB and Select Material in the context menu. If you want to apply a material to a mesh, you can select mesh first, then the material, click RMB and select Apply from the context menu. This can be safer than drag and drop, especially in heavy scenes you might experience lag.
  6. Recent versions of Toolbag have taken a huge leap forward regarding importing and exporting. There are .USD and .glTF formats with several options. For me, though, exporting to .obj was very useful. When importing many meshes through one obj file into 3ds Max, all the meshes can be automatically combined into one. Although Toolbag can display a scene with thousands of meshes, limiting your number of meshes is better and condenses your list.
  7. Peer feedback is always a good idea, as they might notice something in the composition, light, and details that do not stand out to you. In my case, for example, it was brought to my attention that the piles of candies needed to be bigger, and the two candies were a little different in color than in reality. Also, the thread on the necklaces was thicker than normal and not white.
  8. The last piece of advice, but the most important when creating sweets, is that you must work purely from photo references, never from real ones! Having them in front of you can be a recipe for disaster. Remember, their harmless appearance is just a mask; their strength is in numbers. 😉

Lighting Setup

I started with the Sky light, I chose a suitable HDRI sky from the Library and set its Brightness to a low value of 0.166. I added the remaining Spot lights, and set their Shape to Sphere.

I tried to mimic the lighting of a room with warm light from some chandelier hanging from the ceiling (key light) and blue light coming into the room from outside (secondary).

At the same time, I wanted the key light not to illuminate the area around the eyes of the bust, so there would be more contrast between the glowing eyes and the area near them. I also added one helper light above the lollipops to illuminate them better.

Later when I added the background and the bats, I added three more lights. The first was another warm light from above since the key light did not affect the background. I only needed to light it slightly and with much less sharpness than the key light. The second light was another helper light directly above the main bat so that he could be illuminated well. The third and final light was a strong orange light that illuminated the beams of the wall behind the bats to make their silhouettes visible.

I tried setting up various lights throughout until I was satisfied. It’s a non-linear process that requires much trial and error and fine-tuning.

Camera Setup

I set up the camera very early so that the composition was set up at the angle that I thought was the best and I could continue positioning the bowls, glasses, and cupcakes so that everything was visible. After I added the background, I moved the camera closer to the table and adjusted the FOV so that the viewer could see all the candies slightly from above, and at the same time, the bust and the bats were looking at the viewer from above. Or as if the viewer himself was sitting at that table. In the beginning, I positioned the camera angle similar to that of a classic still-life painting, where the FOV is lower because the painters have a certain distance from what they are painting.

Below you can see my main camera setup. I only set a subtle Depth of Field, so all the sweet traps and bust are visible. For additional close-ups, I choose a stronger DOF.

Tip: It’s good to have more than one camera setup. I advise locking the main camera so you don’t accidentally change its position. I also enabled the main camera’s Safe Frame to see how my final render would look. Other cameras will be helpful for different purposes when working with a scene, i.e. moving meshes around, navigating the scene, or texturing. I don’t use Safe Frame, DOF, or other camera effects for these secondary cameras. It’s also good to set up cameras for close-up shots to capture the most interesting parts of the scene. Setting these cameras up as you start creating the scene will also help you create WIP renders.

Textures and Materials

All textures in the scene except the wall texture are simple. Setting up material values for transmissive materials was as important as textures.

Let’s look at some examples.

Paper Cupcake Molds

The paper cupcake molds were made in 3ds Max. They are the only models that have a Thin Surface transmissive material. It is important to have the outer side of the weaving nicely stretched in the UV without a seam so that the patterns on the texture are not deformed or interrupted. This is easy because these molds are made of thin paper material, so it needs only to separate the inner and outer parts into two UV islands and unwrap.

As you can see in the video below, I used a few 2D patterns from the Library but also created new ones using Procedural layers. For 2D patterns, set your Projection Method as UV. With Tri-Planar projection, the 2D pattern would not be continuous as it would be projected on the mesh from three sides. There is no problem with UV projection if you have good UV mapping. Filling the inner part with white was quick. I first chose the UV Island Select tool and selected the inner part with just one click. Then I filled it with white with another click using the Flood Fill tool.

Making the Candy

There was a lot of trial and error when creating the candy materials. I mainly used the Refraction shader module, Volumetric Scattering, and Subsurface Scattering. Each candy required a slightly different approach. Some candy needed mesh variations, while others comprised multiple meshes. Some had vertex color, while others required pure color.

If you ever make 3D sweets and choose to work from photo references, you are still in danger of succumbing and running to the nearest candy store. In that case, I have a great tip for you. Give all your money and credit card to someone from your household and explain your difficult situation. That is the best thing you can do, believe me.

In the video below, you can see some of these candies and their material settings.

Brushwork in Toolbag

In the video below, you can see how I proceeded when painting textures for candies. You can make your own brushes and save them in the Tool Settings window. It’s worth making a brush with pressure-sensitivity enabled for Size and Opacity instead of simply using the default brush.

To paint the swirls on the candy, I created a Paint layer and enabled Symmetry with Mode set to Radial.

Whipped Cream Sundae

Firstly, I read this Cem Tezcam’s breakdown article and recommend it to anyone who wants to learn how to make perfect glass and liquid materials in Toolbag.

My approach was simple; I chose the Glass Antique Smart Material from the Library as a base. I adjusted the roughness so the glass was more transparent and added a thin layer of dust to the lower part of the glass. The dust should be less shiny, and the glass has to be less transparent where the dust is, so I set the roughness close to white to this dust layer. I also enabled the Transmission map in Texture Project/Project Maps and set the dust layer as white. With Transmission, you can make refractive materials as transparent as you want, even wholly opaque. With roughness alone, you can make it transparent only to some degree. Both are beneficial in terms of the realism of old and dirty glass.

In the video below, you can see how I created the whipped cream sundae with chocolate on top and how I set up the materials. To ensure all meshes with transmissive materials behind the glass would be as bright as possible, I cut the inner side at a certain height and turned it inward. It’s a simple solution, but it worked.

I handled the big glass bowl with candies differently and created a non-transmissive material out of transmission for all candy near the glass. Candy placed further away from the glass has a separate transmissive material setup, so it looks good from the top view.

In summary, creating the candy was nothing compared to creating a chocolate-covered whipped cream sundae. It’s like killing 100 rats and thinking you’re a hero and you can walk into a dragon pit half-naked. If you want to survive, you need strong protection. Consider yourself very lucky because I have something that will make you invulnerable: eat a big dandelion salad every time you start drooling! You are welcome.

The Bust

As you can see in the video below, I used adjusted Brass Patina and Metal Molten Smart Materials to create a metal material with patina. I added another patina layer on top, which is a duplicated layer from the Brass Patina folder. I masked out metal regions using an Occlusion layer and added fill layers with some textures for variation. I also added a few paint layers to add or remove the patina to my liking. On top, I added the Paint Damp material from the Library and changed the albedo color to red. Then I masked out everything except the area around the mouth to create a sticky sugar material on his mouth. This layer also affects roughness and metalness.

This wasn’t enough, so I added sugar and red syrup meshes because it was fitting. These materials were refractive, and the red color is achieved mainly through the Scatter Depth color under the Transmission submodule, not by Albedo.

The meshes for eyes were divided into two parts.

  1. The inner meshes (lightbulbs/iris) had the Heat Emission submodule enabled, and the Intensity is set to max and Temperature set to 1300.
  2. The outer meshes (eyeballs) material had Refraction enabled to retain the fluorescent effect.

If done this way, you can adjust the size of the inner meshes just by moving with the Refractive Index slider of the Outer meshes’ material. Keep in mind that you can only make them bigger. So it’s good to have the inner meshes small enough and make them bigger with this slider and tune it whenever you want.

The bats’ eyes have a similar material setup to the bust’s light bulbs, and the first time I did it, one of the main bat’s eyes was white. I found it was because the blue light from the side made the glowing eye white. The solution was simple: I made the albedo black and set the Roughness to 1.

Wall Texture

The idea was that the wall should be more damaged from the bottom and in better shape as it goes up. This combined with a wall texture that was easy on the eyes, so there wasn’t an overload of texture information, especially at the bottom where the cups and candies are.

I used modified materials from the Library. First, I layered the stone materials, then the stucco, and then I looked for some paint. After trying a few colors, I tried the Gibs material from the Material/Human folder for fun. I added the Flesh Bloody material on top and looked no further. I masked out the area by stacking up fill layers with Leaks Surface texture from Grunge Maps, each offset and its own mask so as a result, I could end up with a wings/funnel shape that I liked there. On top of that, I also added an Occlusion layer with the Blending mode set to Add. Because of this, the bloody material is in the wall crevices, making it look soaked in blood.

Rendering, Postprocessing, and VRAM

Below are the settings I’ve adjusted in my Render object:

  • I enabled Advanced Light Sampling and set the Bounces and Transmission to high values to prevent transmissive materials from being dark.
  • In Output > Image, I set Samples to 2048, chose CPU Denoise, set its Quality to High, and set Denoise Strength to max.

It looks better without the noise, especially since the large candy bowl seemed very noisy when I tested lower values. However, I found that even with maximum denoising, there is still some noise in the dark areas if you zoom in, but it’s barely noticeable.

It is good to render the scene and experiment with subtle post-processing effects continuously. In my case, I added a volumetric light in the shape of a triangle, a bit of vignette in the Camera settings, and also darkened some shiny parts in the upper right corner to keep the focus where I wanted in the composition. I did not do any other color corrections and mainly wanted the sweets to be colorful, realistic, and attractive, similar to the photos from the internet that inspired me to make the sweets.

Here are some tips to reduce the use of GPU memory (VRAM) if you find performance to be an issue:

  1. Switch your Viewport setting from Full Quality to Draft.
  2. If you use Full Quality and Ray Tracing, use the CPU denoiser instead of the GPU.
  3. Lower your Viewport Resolution in Texture Projects.
  4. Turn off the use of mipmaps for textures. This can be done through the settings of a texture (gear icon). Materials that take textures from texture projects can only be turned off for input maps.

Thanks for Reading

I hope this breakdown was helpful and will keep you from craving sweets. Thanks for reading and to everyone at Marmoset for allowing me to write it.

We want to thank Ludovit Lukac for writing this breakdown. You can find more of Ludovit’s work on Artstation. Create your own candy wonderland in Toolbag 4 using the 30-day trial.

If you’re interested in collaborating on a tutorial or breakdown article, please send us your pitch and a link to your artwork to submissions@marmoset.co.