The Making of the Hot Dog Cart: From 3D Modeling to Publishing on Marketplaces

Making Of / 15 February 2023

The Making of the Hot Dog Cart: Introduction

Discover the secrets of my latest 3D Hot Dog Cart model, optimized for both Unity and Unreal game engines. This model was created with a low polygon count in mind and I also added LODs for even better optimization. With 7 unique texture sets, each with its own UV space, the textures are amazing and the resolution is top-notch.

The components are separated for easy rigging and animation. The tools I used were: Blender for modeling and unwrapping, with the help of HardOps, BoxCutter, and MeshMachine 3D addons. Marmoset Toolbag was used for baking, and Substance 3D Painter for texturing.    

From Inspiration to Reality: The Concept Design of My 3D Hot Dog Cart

I’m always on the lookout for inspiration when it comes to creating game props. I take screenshots while exploring open world games and save them in a folder for later. Another great source of inspiration is checking out the talented artists on Artstation. For my hot dog cart concept, I was inspired by a similar cart in GTAV. As a street food fan, I couldn’t resist the temptation to bring my own version to life. 

To gather references, I did some research by searching for images and 360-degree views of hot dog carts using Sketchfab. I also watched videos on YouTube to gather more information about the various components and features of hot dog carts. I wanted my design to be as realistic as possible, so all of this information was invaluable.

I kept all of my references organized using PureRef, a fantastic tool for collecting references. I had it open in a small window on the bottom right of my screen for easy access. Here are some of the images I used as reference.      

From Blocking Out to Highpoly: The Journey of a 3D Hot Dog Cart Model

The blocking out phase is a crucial step in the 3D modeling process. This involves creating simple shapes to assess the proportions and silhouette of the model. If you have good references, such as front, side, and top images, you can start modeling directly in the 3D viewport. But if you don’t have any references, the blocking out phase becomes even more important. 

In my case, I had a silhouette available for my hot dog cart model, so I was able to start modeling right away. Personally, I like to start with some details, such as bevels and subdivisions, to get a sense of satisfaction and see if I’m on the right track. That’s why I started with a highpoly model.        

Overcoming Challenges in 3D Modeling: The Hot Dog Cart Edition

When it comes to modeling new game props, I always think about how I can utilize my hard surface modeling skills and techniques. My goal is to have a clean and organized topology, despite using booleans, the subdivision surfaces modifier, and bevels and chamfers. I also enjoy using the remesh workflow for creating high poly models. I carefully consider my approach for each component I model. 

One common challenge in hard surface modeling is cleaning up the topology after boolean operations. Fortunately, addons such as HarOps, BoxCutter, and MeshTool can greatly help speed up the process. I like to model based on references, tracing the profile and building the mesh, manipulating vertices and using my favorite modifiers. This technique helps to achieve a result that is faithful to the original and therefore more realistic. 

Another challenge is maintaining accurate scale, proportions, and thicknesses in 3D objects. To overcome this, I always compare my models to a reference character that is approximately 180cm tall or look for exact measurements of the real object when available.    

Unwrapping and Baking

When it comes to unwrapping and creating UV maps, I used Blender. I created 7 texture sets for 7 materials to maximize texture resolution. During the unwrapping phase, I used the ZenUV and UVPackmaster add-ons that provide fantastic functions to properly unwrap the mesh. UV unwrapping can be a time-consuming process, but fortunately, there are some great addons that can help you speed it up and improve the quality of your UV maps. One such addon is UVZen, which offers a range of helpful functions, including a tool for calculating Texel Density. This allows you to distribute texture resolution evenly across all mesh components, ensuring that your textures look great on every part of your model. Additionally, UVZen makes it easy to straighten UV shells and together with UV Packmaster offers many other useful functions that can help you get the most out of your UV maps. By using these addons, you can streamline your workflow and create better unwrapping and 3D models in less time.

After finishing the Unwrapping and material assignment phase, I exported the highpoly and lowpoly fbx files and then used Marmoset Toolbag for baking. I cannot stress enough how fantastic this software is, it has an intuitive interface and allowed me to make photorealistic renderings, texturing, animations, and much more! 

Marmoset Toolbag’s sophisticated baking system made the process even easier and more precise by allowing me to correct artifacts in real-time and make operations on the cage such as adjusting the offset or the skew map. Working with advanced and high-quality tools is always a pleasure! Additionally, starting from version 8.3 of Substance 3D Painter, the baking system has been reviewed and significantly improved.


Texture creation is all about organization and attention to detail. I’ve learned a lot from observing talented artists on Artstation and their tutorials, which I’ll share at the end of this article with links to their profiles. I focus on one piece at a time during texturing, but I also know that starting with a basic material for all components of the object and gradually adding more detail can be an interesting approach. This is a similar logic to what’s often used in modeling and sculpting. 

To keep my layers organized in Substance Painter, I divide them into folders and give them logical names. I begin with a base material and then add variations in roughness and color as needed. I also use generators or smart masks to add effects such as dirt, scratches, etc. I love combining these generators with the curvature map or ambient occlusion to create interesting effects on the edges of objects or in cavities. 

Texturing is a process that requires attention to detail and organization. It’s important to have a good collection of references for the different materials, to look at every detail, and to try to recreate what works best for our project. During the texturing phase of the hot dog cart, I discovered a very interesting filter in Substance 3D Painter to recreate the water droplets on the hot dog cart sink. It’s called MatFX Water Drops and it really helped me add that extra touch to my model.       

Optimizing the 3D Hot Dog Cart Model through Levels of Detail (LOD)

After completing the texturing, I exported the PBR maps for Unity and Unreal using the Substance 3D Painter configuration. Then, I created the Levels of Detail (LOD) using Blender and exported them as fbx files. LODs are versions of the original model with a reduced number of polyggon, which are loaded based on the distance from the camera. I used the Blender decimate modifier to create the LODs. 

For the subsequent LODs, in addition to decimation, I also eliminated components that wouldn’t be visible from far away. Finally, I loaded textures at different resolutions for each LOD, for example, LOD0 in 4K, LOD1 in 2K, LOD2 in 1K, etc. 

Optimizing your 3D model is like giving your game a power-up! It helps ensure a smooth and speedy gaming experience, especially on devices with limited processing power like mobile phones or lower-end PCs.Creating Levels of Detail (LODs) is a super smart move when it comes to optimizing your 3D models. Think of it like having different versions of your model, each with fewer polyggon details. This means the GPU can process them more easily and efficiently. And, when the camera moves away from the model, the LOD with fewer details will be loaded, saving resources and helping your game run even smoother. 

Textures are another important piece of the optimization puzzle. By loading lower resolution textures for LODs, you can lighten the load on the GPU and improve performance.By doing all of this, you’ll be giving your hardware a break and reducing the number of drawcalls required. The result? A more fluid and enjoyable gaming experience for you and your players.       


Once the optimization was complete, I published the model on major 3D model marketplaces such as the Unity Asset Store, CGTrader, BlenderMarket, Artstation Marketplace, FlippedNormals, so game developers and 3d artists can purchase and use it in their projects. Additionally, I published a timelapse video on my YouTube channel showing the creation of the 3D model and its texturing. 

I am very grateful to the supportive community that provided valuable feedback during the development process. I want to invite everyone to try the 3D Hot Dog Cart model in their game projects and provide me with their feedback, so I can continue to improve and perfect my 3D models. Thank you for reading this article, and I hope to have inspired you to create increasingly beautiful and functional 3D models.

Special Thanks to

🔥 Paula Sánchez-Ferrero for her awesome course on Domestika

🔥 Blender Italia, the community where my journey into the world of Blender and 3d computer graphics started 

🙂 And many other people who every day teach me something new                                        


Here are some great channels to follow and resources

🔥 Old Chair Full Creation Process (by Andrew Averkin) – (affiliate link) 

🔥 Learn HardOps and BoxCutter (by BlenderBros) (affiliate link)

Stay updated and Follow 3DSkillUp on:

👉 Artstation

👉 Facebook 

👉 YouTube 

👉 Instagram 

👉 Twitter 

👉 Original article published on 3DSkillUp Website            

🛢️🛢️🛢️ How to create LODs with Blender and use them with Unity

Tutorial / 17 June 2022

In this article we will see how to create LODs with Blender and use them with Unity. LOD stands for Level Of Detail and is an optimization technique to reduce hardware workload by reducing the number of polygons of the meshes that are distant from the camera.

When an object is far from the camera, details will not be seen, but if LODs are not used, the GPU will still calculate the number of polygons in the distant mesh thus leading to unnecessary workload and impacting the performance of the scene. But thanks to the LODs technique the polygons will be reduced so that optimal performance will be achieved in real-time rendering.

By name convention you assign LOD0 to the original mesh and then increase the number by reducing the geometry.

Let’s create LODs with Blender!

We can create LODs by reducing the geometry manually or through the use of a modifier, in this case Blender’s Decimate modifier. It’s useful to reduce geometry manually when we need to maintain a clean topology, such as for characters, organic shapes or anything that needs to be deformed or animated. Instead, for static objects, like game props, we can make use of decimation modifiers. 

✔️ To create LOD1 we make a copy of LOD0 with Shift+D

✔️ We add the Decimate modifier and set the ratio value to 0.6

✔️ We add the Weighted Normal modifier if shading artifacts occur 

Then we repeat the same process for LOD2 and LOD3. We duplicate LOD0 and create LOD2 by add the decimate modifier with ratio 0.4 and LOD3 with the decimate modifier and ratio 0.15

How to use LODs with Unity               

At this point you can export to FBX format our LODs and use them with Unity.               

We organize the Unity project with all the necessary folders. In particular, the Textures, Meshes (containing the imported LODs in fbx format), Materials folder and Prefabs folder were created. 

The textures folder contains the textures with the 4K, 2K, 1k and 512 dimensions that will be used with the LODs. The LOD0 will have the material with 4K textures loaded, the LOD1 at 2K and so on. 

✔️ We move LOD0, LOD1, LOD2 and LOD3 to the hierarchy panel of Unity.

✔️ Then we select LOD0 from the hierarchy and add a LOD Group component from the Inspector panel.

✔️ Now we have to select the respective slots named LOD0, LOD1 etc. (to add a new slot right-click on them and Insert Before) click on the add button and add the corresponding LODs present in the hierarchy we created with Blender.

We can then drag our lod0 into the prefabs folder to create a prefab that we can easily reuse in the scene with the loaded LOD Group. 

In this article we looked at How to create LODs with Blender and use them with Unity

So that’s it as far as creating LODs with Blender is concerned. Stay tuned for new posts!

You can follow me on 🔥 Artstation and 🔥 Artstation Marketplace

👉 3D Skill Up Website

Video Youtube (Audio in Italian with English subtitles)

🖱️ Blender Selection Tools - Tutorial for Beginners

Tutorial / 13 June 2022

Blender Selection Tools

In this article we will look at Blender Selection Tools and learn how to select and deselect objects in the 3D viewport

In the left toolbar (keypad N) you can select the Select and Activate Items button. If we hold down this button it will be possible to choose different modes of selecting objects, including Select Box, Select Circle, Select Lasso. To select objects in Blender’s 3D Viewport we will just left-click on them. 

Selection of all 3D objects 

Pressing Shift+Left mouse button will allow multiple selection of objects. We can select all the objects in the scene at once by pressing the A key, and with the Alt+A key it will be possible to deselect them. We can also press A twice fast enough to deselect. 

It’s possible to select some 3D objects in the viewport and then reverse the selection with Ctrl+i.

Box, Circle and Lasso Select

By activating box selection, you will be able to create a selection box by dragging the left mouse button, and everything inside that box will be selected. We can create a multiple selection with the selection box by holding down the Shift key. Instead, it’s possible to deselect by pressing Ctrl.

It’s possible to call up the select box more quickly with the shortcut b. When we use shortcut b for the selection box it will be possible to deselect 3d objects by holding down the middle mouse button. 

Then we have the circle selection mode, which can be invoked with the shortcut c. We can enlarge the radius of the circle by simply scrolling with the mouse wheel. It will be possible to deselect by holding down the middle mouse button. 

And finally we have the select lasso. This will create a select lasso by holding down the left mouse button and dragging. With the select lasso we can create multiple selections of 3D objects by pressing Shift and deselect by pressing Ctrl. 

Blender selection tools – Some tips for selection in edit mode

The selection methods we have seen so far in object mode also apply to in edit mode to select vertices, edges, and faces. 

And here are some suggestions for selection in edit mode. You can select an entire loop by pressing Alt+Left mouse button.

If we need to select a contiguous area, instead of selecting individual faces with Shift, we can select them in one go. By selecting the first face and then the last one while holding Ctrl

To select faces alternately more quickly, we can select the first face then the second and then press Ctrl+Shift+ the + key on the numpad.

In this article we took a look at the Blender Selection Tools

So that’s it as far as Blender Selection Tools are concerned. In future articles we will look at some advanced selection techniques, so stay tuned!

You can follow me on 🔥 Artstation and 🔥 Artstation Marketplace

👉 3D Skill Up Website 

Video Youtube (Audio in Italian with English subtitles)

🪕 Breakdown - Modeling a Banjo with Blender - Full Process Time-Lapse

Making Of / 07 May 2022

Modeling a Banjo with Blender (full process timelapse)

Hello friends of Artstation. Today I am sharing with you my entire timelapse workflow of creating a game asset with Blender, marmoset Toolbag and Substance 3D Painter.

✔️ I start the high poly modeling and create the 3D lowpoly model of the Banjo with Blender. 

✔️ Then the unwrapping phase with and then the baking of the normal map, ambient occlusion and curvature with Marmoset. 

✔️Finally how to texturing with Substance Painter the Banjo, this ancient musical instrument of African origin. 

🎮 This process is what I usually use to create a Game Asset, with an additional step that is the creation of the LODs.  So get comfortable, brew a refreshing tea (or even a cool Mojito 🍹 if you prefer) and enjoy the whole process.  

🖥️ Software Used: 

✔️ Blender 

✔️ Marmoset Toolbag

✔️ Substance 3D Painter

🍷 How to Create a Realistic Wine Glass with Blender for Beginners.

Tutorial / 02 May 2022

🍷 Create a Realistic Wine Glass with Blender!

Hi ArtStation dudes! I'm Francesco Saviano from 3D Skill Up. Today we're going to see how to create a realistic wine glass with Blender.

Almost everything around us in real life can be traced back to simpler, more primitive shapes like cubes, cylinders, spheres, etc. With this principle in mind we can begin to model starting from simple shapes and then arrive at increasingly complex and detailed forms. This phase is known as blockout.

🖼️Let's start with a reference

Although in this case a glass is a very simple shape, it is always a good idea to start modeling with a reference image in the background or in front of us. In this way we won't have problems with proportions and our 3d models will be more realistic.

In Blender we insert an image in the background adding it from the menu add -> image -> reference (shift+a shortcut)

Let's start modeling the wine glass!

Once we have inserted the image in the background we can start modeling the wine glass. We start with a cylinder, enter edit mode (tab key to switch from edit mode to object mode) scale on z, place it at the base and then extrude and scale following the profile of the glass in the image. We then remove the top face.

Let's add modifiers!

At this point we can add the modifiers:
✔️Subdivision Surface

Solidify will give thickness to the wine glass while subdivision surface will give it a better shape by subdividing the mesh..
Remember to apply the shade smooth in object mode by clicking with the right mouse button -> shade smooth.

We then place some edge loops (ctrl+r) to give the appropriate shape to the glass.

Then let's create the liquid part for the wine.

We must apply the Solidify modifier, in the modifiers stack select it and use the shortcut Ctrl+a to apply it

To create the liquid part that will represent our wine, we select in edit mode the inside of the glass up to a certain height, duplicate the selection and separate it creating a new piece.

In Edit Mode, once selected the faces we are interested in, we duplicate them with Shift+D and then separate them pressing p->Separate Selection

Now let's recalculate the liquid normals. Just select the whole piece in edit mode by pressing the a key (select all). Then press alt+n to open the Normals menu and recalculate the normals.

🔥 It's time to create your glass and wine materials!

Glass Material

To create the glass we will use the PBR Principled BSDF shader of Blender, in this way we will have a physically correct material. Let's move to the Shading workspace, select the glass in Object Mode and create a new material. I called it mat_glass.

In the Principled BSDF Node we set:

✔️ Transmission to 1

✔️  Roughness to 0 

✔️ Base Color to pure white.

In Blender Properties, in the World Properties tab, load an HDRi by selecting in Color->Environment Texture. Also remember to change the rendering engine from Eevee to Cycles if it is not already set.

Wine Material

In the same way we create the wine material. Select the mesh in object mode and assign a new material mat_wine. As for glass we set transmission value to 1 and roughness to 0. For this liquid we will additionally use the:

✔️ Principled Volume node

necessary because otherwise the liquid would look too clear and clean. Instead it needs some consistency, some depth. 

Then we insert the Principled Volume node from the Shader Editor pressing Shift+A then Shader->Principled Volume. We increase the density and change the color absorption. In this way we will absorb part of the light as it passes through the volume, creating a more "dense" liquid. And that's what we were looking for!

💡 Let's set the lighting and launch the rendering!

We insert a floor and a camera and use the three-point lighting type. We add a key light shifted to the left about 45° from the camera. We add a fill light to the right at 45° from the camera, and a back light behind the object. The light intensity should be set like this 100% key light, 50% fill light and 20% back light.

We use a warm color for the key light and a cool color for the fill light so that we have a nice warm-cold transition.

🔥 Then in the Render Properties tab set the samples to 150 plus denoise and start rendering!

🍷 And here's how to create a realistic wine glass with Blender! 

▶️ If you want you can follow the whole process on YouTube (🇮🇹 Italian audio with 🇬🇧 English subtitles)

❤️ If you'd like, support my content creation by following me on:

👉 Follow me on Artstation

👉 Follow the 3D Skill Up Youtube Channel (Italian audio with English subtitles)

👉 Follow 3D Skill Up