Lisbon Streets

Environment Breakdown

Carlos Vidal


Carlos Vidal

3D Artist

Inspiration and references

It all started scrolling down on Instagram, I stopped into some trip to Lisbon pictures from a friend, I liked the atmosphere and the ground, so I began searching more about the place.
It was in my mind to make a project focusing on the ground and using PDO (Pixel Depth Offset) material technique taught by Jesús Blasco.
I wanted to capture the essence of Lisbon’s downtown streets with the cobblestone, the tram lines, the Portuguese pavement, and the green handrails.

All the streets where the historic Lisbon tram passes are very similar, but I wanted to center my attention on only one, so I fell in “Rua Limoeiro” street with Google Maps Street View, which I used as the main reference, combined with some other good references that you can find by searching “Rua Limoeiro” in Google Images.


Tram line

For the tram line I created the asphalt in Substance Designer with some varied noises, that I blended and tweaked since I got satisfied, and then I used opacity to get rid of the sides and the railway holes, creating the tram line trim.
Then I created the material in Unreal, using the PDO technique to rise up the texture as it was geometry, creating that nice integration with the cobblestone in the final result.

For the rail I wanted to hold well close up shots, so I modeled and textured separated from the tram line trim. To finish I put it all together into a blueprint.



The street and sidewalks are mainly simple planes with subdivisions for vertex painting, not a big deal.

For the sidewalk border, I modeled and sculpted six different stone variations that I joined later into a blueprint on the engine, instead of placing them one by one, and then I modeled two different versions of the handrail that later I set together into a blueprint too.

I didn’t make the SubD highpoly, instead of I brought the models to ZBrush, I did them a Crease, Divide, DynaMesh and then used Polish feature to smooth the edges out. In my sculpting process, I used mainly three brushes: TrimDynamic and OrbFlatten_Edge to break the edges and then Orb_Rock_Noise for the wearing noise (you can get the last two ones for free from Michael Vicente’s Orb Brush Pack).

Creating the materials in Substance Designer

I created the sidewalk and the cobblestone with Substance Designer. They are basically a Tile Generator as a base with some variations and the ground below, then I raised the ground below to create the variations that I used with the vertex blending.

Vertex blending

Here comes one of my favourite parts, setting up the materials in Unreal because it’s the time to see the materials you have created in action.

I begin setting up the two materials variations with POM and blended with vertex color, and then when it’s working, I go implement more features to the material as I go. For example, UV controls, blending controls, base color controls, or normal and roughness intensity.

And now it’s time to have fun with the vertex painting, use it wisely to integrate the materials and the assets together. For the cobblestone, I painted more dirt on the asphalt boundaries and on the sides, and for the sidewalk, I placed the dirt close to the border and then spread it randomly around.

I don’t want to forget to mention that making environments it’s a lot of back and forth and go constantly adjusting things, especially materials, so use the power of material tweaking inside Unreal to make things fast and easier for you.



Let’s talk a bit about the handrail blueprint, it consists of a blueprint where you can change between the two handrail variations, enable/disable the ground decal and manage the stickers, let’s dig a bit into that.
I took pictures from the stickers, edited them in Photoshop, and created the materials for both stickers in Unreal. Ones I got that, I went to Maya and took the top part of the handrail (where people use stick stickers), I duplicated it and square UV’d it.

Then I went back to the engine and added that to the blueprint, I assigned the sticker material to it, and I added a dropdown to select between the stickers. Then I added a function to offset the texture, I exposed that function on the blueprint and voilà, we have a pretty tweakable handrail tool.



Now it is time to dress the scene up a bit, you can do it fast and easy with the extensive Megascans library. I included the side dry leaves trim to dress the scene and give a nice transition from the sidewalk to the road, and also sets the season of the year the scene is taking place, autumn in this case.

Then I included the manhole cover that ended up very integrated due to the cobblestone encircling it and the help of vertex paint. Use the power of Unreal materials to integrate the Megascans assets.


For the lighting I kept it simple: I rotated the directional light to get the handrail shadows projected, and then I added some branches and leafs to add the tree shadow. Pointing the light towards the camera helps to highlight the roughness map.


Post Processing

For the post-processing I always use the same template for my renders in Nuke: increase gain, sharpness and vignette. You can do the process in Unreal or Photoshop but I tend to do it nodal with Nuke.


Tips and tricks

Here I want to put together a few tips and tricks that I learned along the way:

– Start small and don’t go crazy.

– You can make your highpoly faster in ZBrush using the crease+divide+dynamesh+polish technique.

– ZBrush sculpting with orb brushes.

– Use PDO (Pixel Depth Offset) in your materials if you can to make them look awesome.

– Go implement features to your material as you go.

– Use the power of Unreal materials to tweak the materials to your needs and make them integrate nicely.

– You can use the extensive Megascans library to dress up your scene fast and easily.

– Use blueprints when you have the chance to manage the meshes, save time and keep the scene clean and more organised. You will be able to make changes easily when it’s required.

– I love to post-process my images with gain/exposure, sharpness and vignette to boost up my renders.

– Watch tutorials if you need to add new features to your work, use the knowledge that the community shares to improve your work, share yours whenever you can and don’t stop learning!


Resources and Thanks

Thanks to Jesús Blasco Masterclass at Florida Universitària for teaching us Unreal Engine 5 tips and tricks and PDO material techniques:

Creating Materials in Unreal Engine by Kem Yaralioglu from Artstation Learning:

Advanced Vertex Painting Techniques by Tharlevfx:

Victorian Street Environment by Richard Vinci from the Unreal Marketplace for the blueprints learning:

Substance Painter Peeling Paint Tutorial by Stanislav Teslenko:

And thanks of course to the GamesArtist team for giving me the opportunity to share this with you!