Designing Atmospheric WWI Plane Crash Scene In Abandoned German Asylum
IntroductionHi everyone, I'm Leandro Grasso, a 3D Environment Artist from Sicily. My journey into 3D art began after the COVID period, sparked by my passion for landscape photography. Recently, I completed a mentorship with Jeremy Cerisy, during which I significantly improved my environment creation skills. I learned a lot and was able to apply that knowledge to my most recent project. As a freelance artist, I've contributed to a couple of NDA projects, and I'm currently working on an environment for an indie video game scheduled for release later this year. PlanningUnder the direction of my mentor, I scouted for real-life locations and imagined how they could be interpreted for a video game environment, rather than starting from a concept. My main goal was to improve my skills in creating destroyed environments, learning how to handle damaged walls, cracked pavements, and abandoned objects.So, I decided to create an old abandoned asylum in Germany and added a crashed World War I aircraft to introduce new challenges and storytelling opportunities. Through this combination, I aimed to study destruction while also suggesting a narrative about what might have happened at the site after the crash. Below, you can see some of the references I used for the asylum and how I planned it. Blockout & CompositionI started with a simple blockout in Unreal Engine 5. While building the blockout, I frequently used the mannequin to ensure proper proportions. Once the basic layout was in place, I placed several cameras to find the best compositions and give the environment the right sense of depth, especially considering the limited space available for movement.After that, I exported the entire blockout to Blender and began dividing it into different pieces to plan out the modules and props. I was able to properly plan these elements after creating an advanced blockout, where I also applied some basic textures to see how the environment reacted to different colors and materials.Asset Production WorkflowOnce the blockout was complete, I started modeling the modular pieces based on the needs of the environment. I created modules of various sizes, ranging from 1 to 4 meters, for the main elements like simple walls. For more complex parts, such as the stair walls, I took a different approach and created larger, non-repeating modules.Speaking of modules, I want to highlight the destroyed wall caused by the aircraft crash. I used a Boolean operation to cut out the damaged section of the wall and the wood. After that, I created individual bricks and placed them along the broken edges to add more realism and detail. Connected to that wall, the modular stairs I created were designed to fit the ideal layout of a game level. To maintain the correct proportions, I used the default stairs in Unreal as a reference and then modeled them in Blender.As for the railing, to save time, I first broke it down into main components and created instances of those pieces. Once the entire railing was modeled and the UVs were ready, I made the instances real so I could unwrap all the pieces in one go. After unwrapping, I moved the UV islands randomly to introduce variation during the texturing phase.For the vegetation, I used assets from Quixel Megascans. Since the pack didn’t include vertical vegetation, I sourced a different ivy asset that contained vertical elements. I removed the leaves and kept only the branches.Then, using a particle system, I added the correct leaves onto the vertical branches, scattering them only at the tips by using a vertex group. Here are the vertical assets I created, with a small detail asset shown in the top left.Regarding the assets, I didn't use high-to-low poly baking in this project. Instead, I modeled everything in mid-poly to save time while still maintaining good visual quality.One of the biggest challenges was modeling the destroyed World War I aircraft. As a junior artist, it was my first time working on a damaged vehicle. I began by modeling the aircraft fully intact and then manually destroyed it piece by piece to achieve a more realistic and intentional look. To guide me through the process, I looked to industry professionals for inspiration. I found some amazing vehicle models by Pavlo Panchenko for S.T.A.L.K.E.R. 2: Heart of Chornobyl on ArtStation. Being able to study his work helped me a lot, not just technically, but also in defining the artistic direction for my own piece.Last but not least, I wanted to talk about the broken glass pieces I created. I made them in ZBrush, starting with a random image of broken glass I found on Google. I brought the image into Photoshop, converted it to black and white, and increased the contrast to make the cracks more visible.Then, I imported the image into ZBrush, subdivided a plane several times, and used the image as a mask. I hid the unnecessary parts and deleted them, keeping only the masked glass shapes. After that, I decimated the mesh to reach an acceptable polycount, imported it into Blender, and created the UVs. All UVs were unwrapped in Blender. I used Texel Density Checker to set a texel density of 512 px/m with a texture size of 2048. For this project, I used three UV channels: the first for the RGB mask, the second for tileable textures, to maintain high quality during the texturing phase, and the third for additional normal maps where needed. This setup allowed me to reuse the same textures, such as metal, rust, and wood, across both modules and assets. I also used RGB masks for the assets, so the UV islands were specifically packed into that channel.TexturingFor the texturing, I wanted to experiment with a workflow I hadn't tried before. The entire project was textured using Vertex Painting, RGB Masks, and tileable textures. I didn't use any unique baked textures.Tilable textures allowed me to maintain high quality even on large modules and props. Vertex Painting was used to add variation across surfaces, while RGB Masks provided additional layers of variation, especially on props. I also used decals and normal edge decals to add extra detail and break up the surfaces further.Below, you can see my master material setup, which includes Parallax, Vertex Color blending with a HeightLerp node, and RGB Mask blending using a simple Lerp node. All the textures used in my environment were sourced from Quixel Megascans, except for two tileable textures that I created specifically for this project. I made these two textures from scratch in Substance 3D Designer.I'd like to talk about my stained glass and explain how I achieved the final result. First, I took a photo of a real stained glass window from the actual location. Using the Warp tool in Photoshop, I straightened the image and then exported it.Next, I imported it into Blender and began modeling the metal framework that separates the glass pieces. Once that was complete, I rendered the shape in orthographic view with a black background and a white emissive material applied to the metal. I then cleaned up the render in Photoshop and brought it into Substance 3D Designer, where I used it as a mask to create the final stained glass texture. Once my textures were ready, I used a pre-made master material from the Advanced Glass Material Pack, free on FAB, and customized it to suit the needs of my stained glass.For the normal edge decals, I improved my workflow compared to my previous project by sculpting four different corner variations. Once the sculpts were complete, I imported them separately and baked them in Substance 3D Painter to avoid halos on the edges of the bakes. This approach allowed me to skip any cleanup in Photoshop. I only used Photoshop to combine all the baked corners into a single normal texture, as shown below. Last but not least, I'm really happy with how this decal turned out in the project. When I saw it in the main reference, I immediately knew I wanted to include it in my environment.I imported the reference image into Photoshop, straightened it using the Warp tool, and used the Clone Stamp and Content-Aware Fill to fix some damaged areas. Then, I took a screenshot of the wall in Unreal Engine with only the albedo visualization enabled, and used it in Photoshop as the base layer for the mural. I tweaked the blending modes to extract imperfections from the albedo texture and created a custom mask with brush strokes to blend the mural naturally into the wall. This is the result. CompositionWhen it comes to composition, my background in photography helped me a lot with setting up cameras. I defined a few key shots early on and added more as the environment progressed and came together. Since I was working on an indoor scene, I chose to use a wide-angle lens to capture more of the space, and also included a zoomed-in shot, like the one of the wheelchair, to create a stronger sense of depth.To support the composition, I scattered various details throughout the environment, such as debris, papers, small pieces of glass, and other elements to enhance storytelling and realism.LightingFor the lighting, I used an add-on for Unreal Engine called Ultra Dynamic Sky to give the scene a natural base lighting pass. After that, I added Rectlights to emphasize certain areas of the environment, slightly tweaking their indirect lighting bounces.I also placed some ivy in front of the spotlights to fake subtle shadow patterns and add more visual interest. For color grading, I used a LUT. I first rendered a single frame and imported it into DaVinci Resolve, where I applied a LUT I liked. Once I was happy with the result, I copied the settings to the RGBTable16x1 texture, which starts with a neutral look by default. For the final render, I exported the project in EXR format using PIZ Multilayer compression, with Spatial Sample Count set to 1 and Temporal Sample Count set to 64. I also used a Warm Up Count of 120 for both the Render and Engine to ensure the exposure was correctly stabilized from the beginning of the render. Additionally, I applied several console variables to improve the final image quality. ConclusionAnd here we are at the end. This project was one of my portfolio pieces developed under the mentorship of Jeremy Cerisy, who helped me a lot with his feedback and really opened my mind to how to approach level and environment creation. It took me about three and a half months to complete.Even though I aimed to work more efficiently on this environment, I still lost a lot of time at the beginning, mainly because I wasn’t sure which workflow to use for texturing, what I needed to create from scratch, and what I could reuse across the scene. In the end, it became a learning-by-doing process, constantly planning and adapting as I added new techniques I was picking up along the way. One thing I really enjoyed was understanding the connection between level design and environment art, it's fascinating to create a space that not only looks good but also serves gameplay. I learned a lot from this project, but one of the most valuable lessons was this: don't waste too much time on tiny details players will never notice, instead, focus on the overall composition and visual impact, especially from the player's point of view.My advice to anyone starting out in environment art is to stay organized in every phase, especially when it comes to setting personal deadlines. Otherwise, there’s a real risk of dragging the project out much longer than necessary. As a junior artist, I know how tough the industry can feel, especially with all the layoffs in recent months, but don't lose faith. That moment when you get hired will come, as long as you keep putting in the effort and continue creating.Lastly, I want to thank my mentor, Jeremy Cerisy, for guiding me through this project with his invaluable feedback. A special thanks also goes to Alberto Casu, Alex Gallucci, and Andrea Siviero for their extra feedback during my spare time. And finally, thank you to everyone who made it this far and showed interest in my project!Leandro Grasso, 3D Environment ArtistInterview conducted by Emma Collins
#designing #atmospheric #wwi #plane #crash
Designing Atmospheric WWI Plane Crash Scene In Abandoned German Asylum
IntroductionHi everyone, I'm Leandro Grasso, a 3D Environment Artist from Sicily. My journey into 3D art began after the COVID period, sparked by my passion for landscape photography. Recently, I completed a mentorship with Jeremy Cerisy, during which I significantly improved my environment creation skills. I learned a lot and was able to apply that knowledge to my most recent project. As a freelance artist, I've contributed to a couple of NDA projects, and I'm currently working on an environment for an indie video game scheduled for release later this year. PlanningUnder the direction of my mentor, I scouted for real-life locations and imagined how they could be interpreted for a video game environment, rather than starting from a concept. My main goal was to improve my skills in creating destroyed environments, learning how to handle damaged walls, cracked pavements, and abandoned objects.So, I decided to create an old abandoned asylum in Germany and added a crashed World War I aircraft to introduce new challenges and storytelling opportunities. Through this combination, I aimed to study destruction while also suggesting a narrative about what might have happened at the site after the crash. Below, you can see some of the references I used for the asylum and how I planned it. Blockout & CompositionI started with a simple blockout in Unreal Engine 5. While building the blockout, I frequently used the mannequin to ensure proper proportions. Once the basic layout was in place, I placed several cameras to find the best compositions and give the environment the right sense of depth, especially considering the limited space available for movement.After that, I exported the entire blockout to Blender and began dividing it into different pieces to plan out the modules and props. I was able to properly plan these elements after creating an advanced blockout, where I also applied some basic textures to see how the environment reacted to different colors and materials.Asset Production WorkflowOnce the blockout was complete, I started modeling the modular pieces based on the needs of the environment. I created modules of various sizes, ranging from 1 to 4 meters, for the main elements like simple walls. For more complex parts, such as the stair walls, I took a different approach and created larger, non-repeating modules.Speaking of modules, I want to highlight the destroyed wall caused by the aircraft crash. I used a Boolean operation to cut out the damaged section of the wall and the wood. After that, I created individual bricks and placed them along the broken edges to add more realism and detail. Connected to that wall, the modular stairs I created were designed to fit the ideal layout of a game level. To maintain the correct proportions, I used the default stairs in Unreal as a reference and then modeled them in Blender.As for the railing, to save time, I first broke it down into main components and created instances of those pieces. Once the entire railing was modeled and the UVs were ready, I made the instances real so I could unwrap all the pieces in one go. After unwrapping, I moved the UV islands randomly to introduce variation during the texturing phase.For the vegetation, I used assets from Quixel Megascans. Since the pack didn’t include vertical vegetation, I sourced a different ivy asset that contained vertical elements. I removed the leaves and kept only the branches.Then, using a particle system, I added the correct leaves onto the vertical branches, scattering them only at the tips by using a vertex group. Here are the vertical assets I created, with a small detail asset shown in the top left.Regarding the assets, I didn't use high-to-low poly baking in this project. Instead, I modeled everything in mid-poly to save time while still maintaining good visual quality.One of the biggest challenges was modeling the destroyed World War I aircraft. As a junior artist, it was my first time working on a damaged vehicle. I began by modeling the aircraft fully intact and then manually destroyed it piece by piece to achieve a more realistic and intentional look. To guide me through the process, I looked to industry professionals for inspiration. I found some amazing vehicle models by Pavlo Panchenko for S.T.A.L.K.E.R. 2: Heart of Chornobyl on ArtStation. Being able to study his work helped me a lot, not just technically, but also in defining the artistic direction for my own piece.Last but not least, I wanted to talk about the broken glass pieces I created. I made them in ZBrush, starting with a random image of broken glass I found on Google. I brought the image into Photoshop, converted it to black and white, and increased the contrast to make the cracks more visible.Then, I imported the image into ZBrush, subdivided a plane several times, and used the image as a mask. I hid the unnecessary parts and deleted them, keeping only the masked glass shapes. After that, I decimated the mesh to reach an acceptable polycount, imported it into Blender, and created the UVs. All UVs were unwrapped in Blender. I used Texel Density Checker to set a texel density of 512 px/m with a texture size of 2048. For this project, I used three UV channels: the first for the RGB mask, the second for tileable textures, to maintain high quality during the texturing phase, and the third for additional normal maps where needed. This setup allowed me to reuse the same textures, such as metal, rust, and wood, across both modules and assets. I also used RGB masks for the assets, so the UV islands were specifically packed into that channel.TexturingFor the texturing, I wanted to experiment with a workflow I hadn't tried before. The entire project was textured using Vertex Painting, RGB Masks, and tileable textures. I didn't use any unique baked textures.Tilable textures allowed me to maintain high quality even on large modules and props. Vertex Painting was used to add variation across surfaces, while RGB Masks provided additional layers of variation, especially on props. I also used decals and normal edge decals to add extra detail and break up the surfaces further.Below, you can see my master material setup, which includes Parallax, Vertex Color blending with a HeightLerp node, and RGB Mask blending using a simple Lerp node. All the textures used in my environment were sourced from Quixel Megascans, except for two tileable textures that I created specifically for this project. I made these two textures from scratch in Substance 3D Designer.I'd like to talk about my stained glass and explain how I achieved the final result. First, I took a photo of a real stained glass window from the actual location. Using the Warp tool in Photoshop, I straightened the image and then exported it.Next, I imported it into Blender and began modeling the metal framework that separates the glass pieces. Once that was complete, I rendered the shape in orthographic view with a black background and a white emissive material applied to the metal. I then cleaned up the render in Photoshop and brought it into Substance 3D Designer, where I used it as a mask to create the final stained glass texture. Once my textures were ready, I used a pre-made master material from the Advanced Glass Material Pack, free on FAB, and customized it to suit the needs of my stained glass.For the normal edge decals, I improved my workflow compared to my previous project by sculpting four different corner variations. Once the sculpts were complete, I imported them separately and baked them in Substance 3D Painter to avoid halos on the edges of the bakes. This approach allowed me to skip any cleanup in Photoshop. I only used Photoshop to combine all the baked corners into a single normal texture, as shown below. Last but not least, I'm really happy with how this decal turned out in the project. When I saw it in the main reference, I immediately knew I wanted to include it in my environment.I imported the reference image into Photoshop, straightened it using the Warp tool, and used the Clone Stamp and Content-Aware Fill to fix some damaged areas. Then, I took a screenshot of the wall in Unreal Engine with only the albedo visualization enabled, and used it in Photoshop as the base layer for the mural. I tweaked the blending modes to extract imperfections from the albedo texture and created a custom mask with brush strokes to blend the mural naturally into the wall. This is the result. CompositionWhen it comes to composition, my background in photography helped me a lot with setting up cameras. I defined a few key shots early on and added more as the environment progressed and came together. Since I was working on an indoor scene, I chose to use a wide-angle lens to capture more of the space, and also included a zoomed-in shot, like the one of the wheelchair, to create a stronger sense of depth.To support the composition, I scattered various details throughout the environment, such as debris, papers, small pieces of glass, and other elements to enhance storytelling and realism.LightingFor the lighting, I used an add-on for Unreal Engine called Ultra Dynamic Sky to give the scene a natural base lighting pass. After that, I added Rectlights to emphasize certain areas of the environment, slightly tweaking their indirect lighting bounces.I also placed some ivy in front of the spotlights to fake subtle shadow patterns and add more visual interest. For color grading, I used a LUT. I first rendered a single frame and imported it into DaVinci Resolve, where I applied a LUT I liked. Once I was happy with the result, I copied the settings to the RGBTable16x1 texture, which starts with a neutral look by default. For the final render, I exported the project in EXR format using PIZ Multilayer compression, with Spatial Sample Count set to 1 and Temporal Sample Count set to 64. I also used a Warm Up Count of 120 for both the Render and Engine to ensure the exposure was correctly stabilized from the beginning of the render. Additionally, I applied several console variables to improve the final image quality. ConclusionAnd here we are at the end. This project was one of my portfolio pieces developed under the mentorship of Jeremy Cerisy, who helped me a lot with his feedback and really opened my mind to how to approach level and environment creation. It took me about three and a half months to complete.Even though I aimed to work more efficiently on this environment, I still lost a lot of time at the beginning, mainly because I wasn’t sure which workflow to use for texturing, what I needed to create from scratch, and what I could reuse across the scene. In the end, it became a learning-by-doing process, constantly planning and adapting as I added new techniques I was picking up along the way. One thing I really enjoyed was understanding the connection between level design and environment art, it's fascinating to create a space that not only looks good but also serves gameplay. I learned a lot from this project, but one of the most valuable lessons was this: don't waste too much time on tiny details players will never notice, instead, focus on the overall composition and visual impact, especially from the player's point of view.My advice to anyone starting out in environment art is to stay organized in every phase, especially when it comes to setting personal deadlines. Otherwise, there’s a real risk of dragging the project out much longer than necessary. As a junior artist, I know how tough the industry can feel, especially with all the layoffs in recent months, but don't lose faith. That moment when you get hired will come, as long as you keep putting in the effort and continue creating.Lastly, I want to thank my mentor, Jeremy Cerisy, for guiding me through this project with his invaluable feedback. A special thanks also goes to Alberto Casu, Alex Gallucci, and Andrea Siviero for their extra feedback during my spare time. And finally, thank you to everyone who made it this far and showed interest in my project!Leandro Grasso, 3D Environment ArtistInterview conducted by Emma Collins
#designing #atmospheric #wwi #plane #crash



