Marta Niemczynska did a breakdown of her Cyberpunk 2077 Fan Art made in UE4: composition, perspective, lighting in reflective environments, texturing, and more.
Hi, I’m Marta Niemczynska, aka Carabea. I’m from Poland but I moved to the UK in 2006 to start my first job as a 3D artist creating models for TV ads and kids programs. I lived here ever since. Over the years I also worked in web and app design, motion design, and VR/AR for mobile. Last September I quit my job and dedicated all my time to environment art and getting better at it and now I’m in the process of searching for a job as an environment artist.
I’m a self-taught artist. I started learning 3D somewhere in 1999, amazed by games like Myst and Syberia and also inspired by VFX for films like Jurassic Park and Matrix. Back then in Poland, there was no 3D education, so the internet was my best friend. I remember reading long step by step tutorials since youtube didn’t exist and I relied on buying magazines, reading forums, and watching behind the scenes on TV. My financial situation didn’t allow me to enroll in any online courses. I bought a lot of tutorials on Gumroad, some on Gnomon, I had a subscription to DigitalTutors for a while (now Pluralsight) and also took part in last year’s Artstation Masterclasses. Other than that, I simply watched lots of youtube tutorials, read Polycount forums and in recent months joined various Discord channels related to game art. It’s so much easier to learn nowadays, all artists are so helpful and sharing their knowledge and I think it’s an amazing time to be a 3D artist.
Biohacker is my 3rd scene done in Unreal. Before that, I only worked in Unity. Since my previous job involved mainly low poly and VR stuff, I really wanted to make an environment where I could push texturing quality, work on some badass, props and improve my lighting, storytelling, and attention to detail.
I’m a huge fan of Witcher, played them all, and I’m even more excited for Cyberpunk 2077 so after seeing the trailer and gameplay demo I knew – this is what I want to make! I love sci-fi and cyberpunk, I was hugely inspired by the game called Observer and I absolutely loved the environments and story, so it was an easy choice.
Start of the Scene
I actually started with a different scene, based on the apartment from the gameplay demo.
I was already 2 weeks in doing the blockout and even did floor material in Substance Designer but I was struggling with composition and finding the key shots I wanted to work on. I got in touch with Timothy Dries, an awesome artist whose blog I followed for a while. He helped me and offered feedback and actually advised to scope down and pick something more manageable.
So I decided on one of the concept art shots I found on CDPR website. I liked its grungy feeling and story. and it actually looked better than the one from the trailer to me.
I started gathering references and analyzed the concept art to figure out what I wanted to show and what the story of the environment is. I knew I really liked the darker mood from the trailer and I wanted like to show the blue light from screens, but I wanted it to feel more dirty and grungy like in the concept art. I also wanted to show a bit of a story of the character who lives there hooked up to the chair most of the time fighting the corporate giants from his hideout.
I use PureRef for my references (like pretty much every artist I know), here’s my board for this project:
Composition & Lighting Experiments
As I started blocking it out, I realized what the issues with the concept art were and why the trailer shot looked very different. The room is covered in tiles which are quite reflective with a lot of bouncing light, and the only light sources are the window and monitor screens. When I tried this setup I got a lot of light bouncing around making the scene way too bright and bringing the focus in the wrong place.
When you look at the shot below, the things you notice first are window and screens. Light shaft guides the eye to the bottom of the chair and since there is nothing interesting there the whole composition falls apart.
I kept working on the scene and was not quite sure how to fix that, thinking that once I have the actual emission from screens bouncing, it would fix it. But it didn’t, so I had to change the approach.
Boarding up the window moved the focus away from it. It limited light bounces around the walls and let me have more control over the brightness levels in the image.
But of course that caused the issue with dark areas and lack of information for nice reflections for reflection probes to pick up. The chair is very dark and I lost a lot of information on the shapes and all the details of the objects around.
I changed the position of the window planks to control where the light is hitting and where the bounces happen. I probably did about 20 variations of the window planks positioning slowly descending into madness as the light would always hit somewhere I didn’t want it to. Luckily, I finally managed to find a sweet spot.
I also added a point light at the side of the chair to give some highlights and further bring focus to this area of the scene. Initially, the point light was red and I was planning on adding a device lying on the ground which would be emitting this light but there was an easier solution – change emissive lights on the chair from blue to orange, and change point light to orange. This way the light has a reason to be there without additional props.
Very late in the process, I actually introduced rectangular lights for the screens. Before that, I had a point light setup above the chair, but I ended up removing all the lights and redoing everything. Adding rectangular lights made so much more sense as they only cast light forward without unnecessary backward bounces. Being able to crank up their intensity without making the whole scene brighter was a step in the right direction. They also let me have nice reflections as their brightness was stronger.
Here is the scene with rectangular lights on and off. You can see how much impact they have on the scene.
Here is my final scene setup. All lights are stationary except for 2 dynamic blinking lights with light function on them. I added a few lights to ‘sculpt’ the visuals more. One spot light shines at the rubbish bags as they needed some highlights to bring out the shapes more. There is also a point light next to the open door too to add some brightness and highlights to the frame. I turned off most of the shadows and only kept it where it made sense and to add some more visual interest.
Light function is really simple, with exposed parameters for controlling speed and easing of the blinking.
Here are my lightmass settings. Since the scene is fairly dark and not much directional light gets in, I could keep static lighting level scale high so the bakes took only a few minutes. When I was playing with lightmass settings, Lighting with Unreal Engine Masterclass with Jerome Platteaux (see below) helped me a lot, plus I also watched multiple videos from Kemal Günel youtube channel to understand settings and behavior of different light types.
Perspective & Props
When I started blocking the scene out I used the concept image as background in 3ds Max and set up a camera with FOV matching it. Through trial and error with aligning walls and floor, it turned out FOV in this concept art is really small, around 65. On average, in game, you have it at 80 or 90 but when I tested it at 90 it made the scene have a very different look making walls longer and more tunnel-like. So to be true to the original concept, for the main shot I used FOV 65, and all other shots are at 90. I think they feel more dramatic because of that.
Once I had perspective matching it was much easier. I worked with 1-meter grid and initially started with modular walls but abandoned this approach since my room is really simple and having walls as a single object makes light leaks less likely to occur. I made blockouts of the main props, UVed them quickly, and brought them all into Unreal to test how it feels. Here’s the progression gif:
I started working on my hero props – the chair and monitors – early on as these were the most challenging props to make and a focal point of the scene. Since the concept lacks details on the side of the chair and monitors, I kitbashed some elements using a great plugin called Kitbasher and an amazing hard surface kitbash set from Andrew Averkin. This helped me come up with shapes and quickly make a design that worked. Then I had to optimize or completely remodel those elements as a lot of them were quite high poly and after that, I started working on high poly in 3dsMax and detailing it in ZBrush. Final texturing was done in Painter. The chair uses two texture sets, the base is using symmetry to get more texture resolution for all the detail and the cushions have another set. More detailed shots and Marmoset view can be found here.
All props were modeled in 3dsMax, along with high poly, some were detailed in ZBrush. I spent some time texturing them in Painter adding lots of normal detail and working on my roughness. Good roughness can really push the quality of an asset, especially in a reflective environment.
For monitors, I also kitbashed some shapes, modeled the screens, optimized the parts, and split them into a kit. I textured them in Painter and rebuilt the final screen setup in Unreal as prefab which let me have more control over the final look. Monitors are using 2 texture sets – one for all the parts and one for the main monitor bodies.
The content of the screens originally was meant to be just a static image, but as I kept detailing the scene I decided to make it animated. I recreated UI from the trailer and screenshots in Photoshop. Then I brought the PSD to After Effects and animated the layers, added glitch effects, little UI elements animations, and tried to bring the stills to life on the whole.
I exported those animations into mp4s, brought them to Unreal, hooked up to Media Player and made a simple material. However, it turned out there were some issues with seamless looping of mp4s and I kept getting a black frame at the end of the loop. I ended up re-exporting animations into png sequences and this worked like a charm. The video below helped me with learning how Media Player works (it also works with sequencer now).
All the prop texturing was done in Painter. I had to watch the values of darker materials and ended up going back and forth lightening them up, especially the chair since the dark leather seat was initially way too dark. Metals were also an issue because the reflections are limited due to the dark nature of the environment. Metal on the chair was much more reflective initially but I ended up adding more roughness information to keep it brighter.
The most reflective textures in the scene are tiles and display screens on the table. I had to remove roughness from the parcels close to the camera and only left it on the tape strips because they were picking up too much light and were affecting the dark framing I established. Reflective strips help guide the eye towards the center of the scene.
I actually didn’t use Substance Designer much for this project as I simply didn’t have time to make all materials from scratch. I only made the wall material and modified slightly the material for the tiles from Substance Source. For all the other elements I either created smart materials in Painter or used Substance Source as a base and added some grunge on top of it in Unreal.
After analyzing this scene by Denis Rutkovsky which was free on Marketplace at some point, I realized I didn’t have to create complex materials and shaders to achieve an amazing look. I spent extra time in Painter for all the props, went with a simple material setup in Unreal, and let the textures do the heavy lifting. I exposed some parameters to make switching of the textures, changing colors, and adjusting roughness and normal map easier but it’s a very straightforward setup.
I used Substance Alchemist for wall damage decals. I found pictures of exposed brick and used Alchemist to generate texture out of it, then mixed it with some detail like concrete and sand to give a bit more sharpness and normal information. Those decals are used around the window and on the wall behind the chair. I was thinking of using Alchemist more for variation of the wall texture and tiles for vertex painting but since the scene is dark the time investment wasn’t worth it and no one would even notice it. Instead, I used decals for surface variation as it was much faster.
Post-Process & Video Compositing
As I said before lighting was very challenging and indoor dark spaces are really tricky to work with. After initial try with dynamic lighting, I decided to go with the baked approach as it gave me better light bounces and more control. My post-process is actually very simple, and I ended up going with the LUT table. I screen-grabbed the scene, brought it to Photoshop, gave it more a blueish tone, and decreased the darkness of the shadows. In post-process, I used AO and Screen Space Reflections.
You can see that post-process is really very subtle as I tried to get as much as I can with the right lighting, fog color, and VFX like fog sheets and light beams. In this gif, you can see how much difference screen space reflections bring in.
Video creation was fairly simple. I made all the shots in sequencer, exported the timeline into a single mp4, and brought it into After Effects, then split it into shots, added transitions, and titles. Then, I captured Cyberpunk logo animation with OBS, brought it in, and added matching ‘Fan Art’ title with glitch effects and RGB color shifting. The audio was edited in Audition and I had to crop it and mix it a little to match the visuals more.
I learned a lot during this project and spent countless nights staying up till 4 am but I enjoyed every second of it. I underestimated the amount of time it takes to polish the scene and next time I would definitely spend more time on planning and making a Notion task board, as I started using it late in the project. It actually really helps to have a clear plan of what you’re working on the next day and being able to tick things off gives a little dopamine rush. So moving forward, I’ll definitely use Notion more for planning and progress tracking.
I also learned a lot about lighting and composition. Huge thanks to Timothy Dries who really drilled into me the importance of good composition, storytelling through texturing and props, and spending more time on polish phase. Composition is such an important subject and knowing how to guide the eye and how to frame things is what makes the difference.
This is the first project where I actually sat down and read books to understand the art fundamentals better. I recommend those books to everyone:
- Color and Light: A Guide for the Realist Painter by James Gurney
- The Photographer’s Eye by Michael Freeman
- Art Fundamentals: Color, Light, Composition, Anatomy, Perspective, and Depth by Gilles Beloeil
I also recommend watching Tim Simpson’s videos, reading his blog, and joining game art discord channels like Dinusty’s Empire and No More Grid with amazing supportive communities giving feedback and helping new artists. And last advice – don’t give up and keep working and learning, everyone has their own pace and it takes time to train the eye and learn software solutions. I still have a long way to go but I’m enjoying the ride!
Marta Niemczynska, Environment Artist
Interview conducted by Kirill Tokarev