From Primitives to Finished Environment

From Primitives to Finished Environment

Zoran Petrovič talked about the way he created a very new 3d environment for the Artstation contest.

Zoran Petrovič talked about the way he created a very new 3d environment for the Artstation contest.


Hello Everyone! My name is Zoran Petrovič, and i’m living in little village Borovnica, some 20km south from capital of Slovenia, Ljubljana.

Let’s see, where did all this begin…..I guess it all began in high school, when with school mates, we had to create website as an assignment, so naturally, we started to compete, who would make bigger and more complex website. With this, I got to learn some very basics of photoshop, and since we were all avid gamers, it didn’t take too long for some of us to start looking into playing around with editors that certain games provided, to make our own textures/skins, models,maps and such.

I was then involved into various mods for games, where I made all sorts of things, from environment assets, to creating enemies (model, textures, even animations)…..From that, I eventually figured out, that it’s the environment art that is really what I want to do, what makes me happy.

In 2009, I got in contact with very small studio here in Ljubljana, Actalogic, when studio just opened up. I’ve been working there ever since. We were just starting, so we worked at first on some less popular games like simulators, but eventually we got to work on game that was much more what we’d like to work on. Either way, it’s been great experience, especially comparing small, indie studio, where you are constantly under time pressure, compared to working on mods, where you sort of have all the time on the world.

Right now, we are just finishing tower defense/RTS hybrid game, Hypernova: Escape from hadea.


When I saw there’s Artstation challenge, especially for game environment artist, I decided I finally want to enter one of these already. With that in mind, I wanted to set up some “rules”, or goals.

First was to make sure I do something every day. This was important, since in past, I had problems with motivation at start; I want to work on it, but think too much what I want to do, and get overwhelmed, which in return demotivated me. This way, I made sure I made some progress, past some of the stages that gave me problem, until I got all hyped up.

Second thing, was to make sure I learn a lot from it. I have several problems, especially when it comes to colors (basics of color theory is one thing, but applying it to entire environment, is for me much bigger challenge). I tried to pay particularly attention to this early on already, so I have enough time to iterate it.For this, i’d import rough placeholder building into the engine, and then play around with materials (colors) and lighting, without any texture or actual assets yet, just so I can get at least some rough idea what I want.

In general, I wanted to first try out basics ideas, like colors, shapes, composition and such very early on, and have it somewhat defined, before actually moving to making any assets. Any change later on would be much more time demanding, but in the early concept stage, it’s much easier to change things.


When it comes to creation of assets, I again wanted to learn some new things. Particularly, I wanted to give Substance package a try, and use PBR (metallic/roughness) workflow. Designer was taking a little longer to learn, I didn’t really have time to use in for this challenge, but I did use Painter in my workflow.

Idea was to make as few assets as possible but to still make scene not to look too modular or rather, to make it feel more natural. 

My workflow therefor, was mostly low template in Maya, export to Zbrush to sculpt the details. In case like pillar, i’d sculpt several different bricks, then rearranged them in Zbrush. After high poly was done, i decimated it, to reduce polycount slightly, so that baking process is slightly faster, and exported the mesh.

After that, I created low poly mesh based on this high poly, uv mapped it in Maya. Then I would import everything into Substance Painter, and bake high to low poly. After that, I just painted the details, and exported everything to Unreal.

One exception to this was vegetation/tree.

I’d usually just model it in Maya, but since this was already sort of learning experiment, I used Speedtree modeler instead.

I made trunk and larger branches with Speedtree modeler, but with smaller branches, I used Maya instead, to make one smaller branch with leaves/flowers, so that it doesn’t look flat from any angle.

I then this model within Speedtree to distribute it around my tree. I feel like this way, i had better control, to make as lower polycount as possible, but to not look flat as a result. 

For some other smaller details, like butterfly or flowers, I just hand painted them in photoshop, since that was I think, good enough at the end, and makes a nice practice.


Regarding scene layout or architecture, unlike some others, I created entire scene with very specific camera angle in mind. Most of the work in this area, was done in initial stages in Maya, where I played around with simple shapes until I got very rough composition that I liked. 

I just imagined that player would walk through a …hall of some sort into this place, and camera was set with this in mind. I think if you have fixed camera like this, it’s much easier to fill the scene. I arranged camera in such way, that when you put in pillars, each is somewhat wide, so with 4 pillars on the screen, you already cover larger part of map, from this camera angle.

To further boost the feeling of larger scale, I wanted to pay some attention to vertical design too. So basically, as high up as you can see, there’s some part of the structure to be seen, as if there’s no end to it. I think that helped with the overall feeling of scale.

To put some depth to it, I put forest a little farther away from the main structure, and mountains even farther away.

Pillar was set in such way, that they would eventually lead your eyes to the center of the scene, the large globe. Since most of the large structure were simple rectangular shape, I think spherical and round shapes around the globe helped dragging the focus on itself. With all this, I think I managed to get some depth and feeling of larger scale to the scene. It was rather challenging to make sure to put details in the right place. I was struggling a bit with putting too many details in the foreground, but luckily, I had some very good comments from other challengers, so they helped to get back to the right track.


For texturing, I think it was a little easier. By this time, I knew what kind of materials i’m gonna use, what colors i’m using and such. This meant I could focus more on just production itself. For the most part, I used as mentioned, Substance Painter, which helped a lot. I first baked high to low poly, to get normal, ambient occlusion and other maps. I used these then win painter to paint some using some basic materials it provides, with some modification. I made myself some simple material templates, so that materials were consistent.

Only exception to this were some minor details, like flowers or grass. Most of these were rather far away and smaller, so I just hand painted them in photoshop. It got the job done, I had more control over it this way, and in the end, I just like hand painted textures, heh.


For materials, I kept it rather simple. Substance Painter did most of the job here, where i could set up basic materials that I needed, by modifying some of the existing materials and changing some options here and there. I used PBR materials with metallic/roughness workflow. Painter helped by exporting textures nicely packed so that it was easier to import into unreal. I mostly left it unchanged in unreal, only add some nodes to have some farther control over colors or brightness of textures. I’ll still a little new to the whole PBR workflow, but I really like it so far; makes things I think a little easier to understand, and also helps achieving better, especially more realistic results.


Regarding lighting, i’ve got a hint from a fellow artist, that in unreal, you can enable something called “Light propagation volume”, which from what I understand, is real time Global Illumination.

Epic supplied documentation on how to do this and how to use it in general.

This was very useful, since I could iterate lighting very fast.

For lighting itself, I used simple directional light, i used “use temperature” option. I tried to use similar values that are suggest in general for the time of day i wanted, so this helped me a lot to achieve colors i was aiming for.

I positioned and oriented light in such way, that it would help with my composition and focus. Because i put some pillars and objects off the screen, behind camera, to mimic some walls, i managed to achieve foreground element to be darker, and shadows pointing towards the globe, where the focus was.

It was a bit tricky to get the right orientation to achieve that, but at the end, i think it worked out. I still don’t think i really understand how all the lighting components work together. I was mostly just playing around with Sun light color and temperature, fog settings, reflection probes, sky box/sphere and other things; all of them contributes to the end result.

I also used “Skylight”, which is special light in unreal. It basically captures distant objects like sky, and applies it as light to the scene. Since i had blue/purple sky, this helped me to get some nice, soft blueish shadows, which worked nice as contrast to main source light’s yellow/orange color.

At the end, i’d like to thank for this interview, as well as to all the readers. I hope you this helped you in some way. For me, this challenge was for sure great learning experience, I had lots of fun with it!

Zoran Petrovic, 3D environment artist at Actalogic

Interview conducted by Kirill Tokarev

Follow on FacebookTwitter and Instagram

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