Magic Potion Bottles

Prop Breakdown

Marvin Tischler


Marvin Tischler

3D Artist


Hello, my name is Marvin Tischler, 35 years of age. The first time I touched a 3D program, I was only eleven years old. From this moment, I was infected. As soon as I was able to buy my own PC, I practiced and soon started to modify games.

Then I got my feet into the industry, working as a 3D artist on several titles from handheld to mobile and AAA games.
After almost eight years, I figured it is time to try my own business as a freelance environment & texture artist, which I still love doing today, 24 years after picking up the hobby.


The primary goal of this project was to experiment with translucent materials and how to create a fake simulated liquid material in a bottle while having it all look good in the end.

It then got a little out of hand as I was experimenting with different types of bottles, how they behave refracting, and testing if the liquid system holds up with all these different shapes.


  • PureRef (Concept collection)
  • 3DS Max (Modeling)
  • Zbrush (Sculpts)
  • Blender (UV’s)
  • Marmoset (Baking)
  • Photoshop (Texturing)
  • Substance Painter (Texturing)
  • Substance Designer (Noise creation, Normal map adjustments)
  • Unreal Engine (Rendering & Material setups)


I scanned the Internet for a lot of images. In the screenshot, you can also see a few ideas that I decided not to do for compositional purposes.



Modeling the bottles

I modeled all the bottles in 3DS Max, the high, as well as the low polys. Small repeating details I modeled as a strap and used splines or deforms to bend them accurately around the bottles.

I didn’t merge them into one object as these would result in trouble subdividing them and would also throw the shading off.

I only applied some sculpts in areas where it’s not easy to get these modeled, e.g., the leaves on the bottle.

I didn’t take too much care about the poly count as the purpose of this project is not to optimize it as well as possible. I’d rather have it good-looking in a quick way. Later in the process, I added some alpha planes to add details like hair on the ropes.

The Cups and Shelves

I pretty much applied the same techniques here. I created the high poly first in 3DS Max and then reduced the subdivision and did some optimization to get the low poly.

The small details on the cups are just small models wrapped around the cups and then baked into the textures. Flowers: For the flowers, I utilized a different workflow.

No high poly was needed except for the leaves where I wanted to get a more accurate shading. The majority of them are just based on alpha planes. I only took a cylinder and added the leaves and petals in the end.



Base Textures

Overall, I utilized a few different techniques to get the desired results.

I used smart materials in Substance Painter (metal cups, bottles, shelves), as well as just copied some textures from Google and changed their appearance (flowers, ropes, paper) to get a good base texture.

A lot of artists stop here already as the textures look already realistic, but there is a lot more we can do to get a more polished look.

Creating Dust

I baked out two ambient occlusion maps to generate the dust: one from the high polys and one from the final low polys. This way, I was able to have the dust accurately generated around the details I added in, like the rope.

I only excluded the alpha planes from the AO-Baking.


Pushing the textures to the next level

The first step is to reduce noisy details in larger areas to create places the eye can rest on.

Afterward, I went in and hand-painted some details and also added some slight color variations to the materials. This helps make the assets look more interesting, although it takes away a bit of the realism.

But in the end, it’s creating art that I am after here. In the GIF on the right, you can see how the blues and purples I painted into the material push the looks of it further.


Creating the Fake Liquid System

The base material in Unreal is much simpler than expected. It’s just a masked material with the backfaces being colored in a slightly brighter way to fake a top surface.

First, I use a world space mask, so no matter how the cup is rotated it always stays level to the ground.

Then I use a vector that is constantly pointing upwards and compare it with a dot product to a vector that is bent via blueprint depending on the direction the bottle is moving and the rotation.

Utilizing the velocity of the object to set the strength gives us the first basic mask resulting in a realistic movement that looks like a basic water level without any waves.

To make the liquid continue moving when the bottle is standing still, I used the velocity as a chaos parameter where there is constantly some slight subtraction going off.

This results in each time the bottle is moved the parameter getting higher and due to the subtraction, the value goes lower when the bottle moves very slow or stands still.

I then controlled some sine waves of different scales with the same chaos parameter to create waves on the mask.

This system is not yet finished, as up and down movement is not supported yet. When I have more free time, I will dive back into this again.


Lighting and Rendering in Unreal

First, I’ve set up a Lumen-render scene with only three rectangle lights, a directional light, a skylight, and active ray tracing and the quality settings being pushed to their limits.

In this environment, I adjusted the textures and material parameters to get the desired look fitting the rendered scene in the best way possible.

For the still images, I utilized Pathtracer without denoising and deactivated the skylight, as it brightens up the renders quite a bit using Pathtracer.



Overall, I enjoyed improving my technical art skills, and that was the main focus of this project.

I just recently started creating my own game, and little projects like these can help me get a clear head again to focus on the important tasks later on.

I hope you enjoyed this article and got inspired to do great art right now!