Creating Batteriy Pile Material Using Blender & Substance 3D Tools

Antoine Déjean told us how the battery pile material was made, explained how the simulation was done in Blender, and shared some tips for beginner artists.

Introduction

Hi everyone! My name is Antoine Déjean, I’m a 21-year-old material artist from France. I am currently in the process of finding my first job in the game industry.

I started 3D 4 years ago when I embarked on my degree in computer graphics with a specialization in video games. I tested a lot of things during these years and I realized that the creation of materials was what interested me the most. I then started doing it regularly to improve myself and I made some friends who work in AAA studios, which helped me a lot in my new adventure.

The Battery Pile Material

I don't really remember how I first came across this image but I thought it would be cool to make it a material. I had always wanted to make a material with a simulation made of meshes, either in Houdini or in Blender, so I thought this was the perfect opportunity to finally do it. I already knew a bit about the workflow so I wasn't totally lost which saved me time.

For the references, I tried to find many images of batteries with various patterns to have a choice when I was going to make them. I also took pictures to see the size of the batteries and to make sure they were at the right scale in Blender.

PureRef is always good to use and keeps your references organized. If you only have one screen you can leave it open on top of your other windows which is very convenient.

Creating Assets in Blender

The first step in this material was to model the stacks in Blender, which was rather quick given the simplicity of the models. Once the different stacks were done, I moved on to the UVs, being careful to flatten the part that will be used as packaging. In the end, I used UVPackmaster to waste as little space as possible and I checked if I had any overlap.

Texturing Assets in Substance 3D Painter

Once all my models were made, I imported them into Substance 3D Painter to do the texturing. The process is quite simple: I just copied different batteries that I saw on my references trying to have correct roughness and metallic values. For the different logos and inscriptions on the packaging, I created alphas in Photoshop to save time in the process. I did not damage the batteries too much in Substance 3D Painter because otherwise, we would have immediately seen the different dirt repeating and all the batteries would have had the same imperfections.

Once I had finished the first battery, I created a smart material to avoid redoing the setup for each battery.

Simulation in Blender

After I finished texturing all my batteries, it was time to configure the simulation in Blender. To do this I first put my different batteries in the same collection. Be careful to apply a different material or directly the textures of your batteries before making the simulation, otherwise, it will have to be done by hand once all the meshes are laid out, and, depending on what you want to do, there may be many.

I then added a plane that I scaled to make sure my batteries didn't fall out and on which I applied a rigid body, passive type. This will be the ground on which the meshes will fall. Next, I added a cube and applied a particle system to it, which I would use to make all my objects spawn. For the parameters of my emitter, I put “render as collection” with a scale of 1 by choosing the collection that contains my batteries. I activated the use count to be able to choose the density of each kind of battery. I make my objects emit from a volume that allows them to fall more in the middle of the floor.

Once my objects were ready, I searched for “make instances real” with my selected cube and applied it. This way I was able to put a rigid body in active mode on each of my batteries so that they react when they fall on the plane. To apply the rigid body on all my batteries, I selected them all by selecting at last the one that already has a rigid body and I went to object > rigid body > copy from active. After setting everything up I ran a simulation up to frame 40 or 50.

When you make a simulation, pay attention to the pivot point of your different objects, they define the center of mass of your objects.

Once the simulation was finished, I started by selecting all my batteries and went to object > rigid body > apply transformation. This way I can move my meshes without resetting the simulation. I then added a basic plane (2x2m) which will be used to bake.

At this stage, my meshes are not yet tiled, so I started by removing all the batteries that were sticking out on the right side of my plane and on the bottom (by putting me in the top view). The first thing to do is to add the same object in each corner. Then I selected all the batteries that were sticking out on the left of my plane and put them in a new collection to isolate them from the rest. I then duplicated all these batteries and moved them 2m to the right so that my material tiles were from left to right. I then repeated this action from top to bottom. It can be a little complicated to do the first time but you quickly understand how it works in the end.

When I finished everything, I checked that I didn't have any objects that overlapped each other. I had to delete some of my stacks that were getting into each other. This is mostly due to the objects you duplicated because that was not their layout.

The next time I make a material that requires simulation, I think I'll try to go through Houdini which seems to be easier in the process.

Baking in Marmoset Toolbag 

In Marmoset, I added a new baking project and imported my high (the pile of batteries) and my low (my plane). I dragged and dropped my high and low into the bake project and opened the parameters. I set the resolution of my output maps to 4K and my samples to 16x; then I added all the maps I need in the output: normals, height, ambient occlusion, albedo (metal) (works better in this case), roughness and metalness.

For the height map, be careful with your settings, if the Inner or Outer Distance is too small, you will have a white map.

Also, make sure that the cage of your low poly fully accommodates your high poly. In my case, I increased the max offset to 120.

Assembly in Substance 3D Designer

After my bake, I imported all my maps into a new Substance Designer project. I always use Daniel Thiger's template which is super useful with all maps already set up and ready to use.

I started my materials with the height, this being the most important map. Here I started by adjusting my grayscale with an auto level and I continued by adding a slight blur so that the tearing is not too important (even if on this kind of material it is unavoidable to have some). I then added a height blend to add a very light soil/dust background, this allows me to remove all the little bits that get in the way.

At first, my albedo was very flat, so I started by mixing it with a normal facing in multiply to give the 3D look. I continued by adding the color for the dirt/dust that I put in the background in my height map. Once my base was ready, I started adding different grunges to add detail and to make the colors consistent with each other.

I always do the same thing at the end of each albedo, which is to use Joshua Lynch's tips to add a little variation in color, mix a curvature and a curvature smooth together and overlay them at 0.2, add a high pass also overlaying at 0.2, a sharpen at 0.1 and finally a PBR albedo safe color to make sure my values are right.

For the roughness and the metallic, I started from my bake to which I added all the grunges that I put in my albedo while being careful to have many variations.

My ambient occlusion was giving me errors and not tiling, so I decided to use a facing normal node to create my final map that works pretty well.

Before exporting my material to Marmoset or Unreal Engine, I like to pack my ambient occlusion, roughness, metallic, and height with an RGBA merge. This reduces the wait time when exporting because there are fewer maps and it also optimizes resources in the software the material is used in. For a better level of detail, I export my maps in TARGA format (TGA) which applies almost no compression and which I find exports faster.

For the release of the article, I decided to release the graph for free so that everyone can grab it and see the different steps with all the parameters. You can get it here.

Rendering in Marmoset Toolbag

I always send my materials to Marmoset as soon as I start to get a result that looks like something. This allows me to see some imperfections better and therefore to correct them faster. So I have a basic scene already set up so that all I have to do is import my material when I need it. This avoids me having to start a new scene each time and set up everything again. When I am more advanced in the creation, I take the time to set the mood I want with my lights and by making my composition.

The most effective thing to compose a realistic scene for me is to use assets available on Quixel Bridge. The quality is excellent and everything is free if you have an Epic Games account (which is free). Whatever I do, I can almost always find what I want there.

The lighting is composed of a spotlight as the main light, another spotlight to soften the shadows, and 2 rim lights to subtly add some colors to the edges. For this presentation, I stayed with the Studio Tomoco HDRI for a clean look.

My cameras were in orthographic mode for the renderings of this material. I usually put them in perspective mode with a 20° FOV but I felt that my shots were more captivating this way. My Tone Mapping is in HEJL which is a little less contrasty than ACES. I prefer to keep a softer result and do all my editing afterward in Photoshop. I also tweaked the Sharpen and the Grain a bit without adding too much. The use of ray tracing is really important, especially with a material like this with a lot of reflections. It gives a much more natural look to the scene and the light transitions are smoother.

The final resolution for the renderings is 4K (3,840x2,160) with the samples at 2,048, in PNG format.

One of the things that came up a lot when I was showing my renderings to my friends was that some of the drums would fit into the edges of my case. The reason behind this is simply that my material is tileable, and since the renderings are done with a plane, it is impossible not to have batteries that are not at least a little cut.

Final Touch in Photoshop

Once the Marmoset renders are done, I import them into photoshop to improve them. With the choice to use HEJL as my tone mapping, I have more room to make changes in Photoshop. I adjust the curves, the contrast, and the brightness of my renders.

To gain some detail and add some more realism, I duplicate my render and turn it into a high pass (Filter, Other, High Pass) with a value of 4. I then put the layer in overlay mode and adjust its opacity (30% in this case).

When I'm happy with my settings, I move on to the final step, which is to add chromatic aberration, blur, and noise. For the chromatic aberration, I use Romain Jouandeau's awesome script which allows you to add it in one click super easily. I then add the diaphragm blur with a value of 4 and noise to finish and tada, you have your image ready!

General Advice

When you make projects, try to get feedback from other people, it's even better if they are more experienced than you. If you are working on your project, you may not be aware of some details that you could improve and lose in quality. Having someone else's vision is always good for you. Don't be afraid to send someone a message just because they have a lot of followers, if you are polite and respectful people will often take the time to reply!

Taking breaks from your projects can also be beneficial. When you come back to your project after a break, you will have a fresh and clear vision of things, in addition to having relaxed a bit.

Surround yourself with people whose work you appreciate. Having friends who do the same thing as you is great, you all have things to contribute to each other and you can do projects together.

Conclusion

I learned a lot with this material and it was really fun to do. I advise everyone to try at least once to do something with a similar workflow!

Thanks to the 80 Level team for giving me the opportunity to share some tips with you and many thanks to my friends for their feedback and help on this project. I hope you learned new things by reading this article!

If you have any questions, feel free to contact me on ArtStation, LinkedIn or Twitter, I will be happy to help you!

Antoine Déjean, Material Artist

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more