$16 for a *very* non-performant material? If this was intended for use in high-detail scenes, not meant for gameplay, one would generally just use a flipbook animation, or looping HD video texture (both of which are higher quality and available for free all over). I love options, but c'mon, that's pretty steep. $5, maybe. And you can loop in materials, using custom HLSL nodes. Also, there are better ways of doing this, all around. Somewhere on the forums, Ryan Brucks (of Epic fame) himself touched on this. I've personally been working on a cool water material (not "material blueprint", thankyouverymuch) and utility functions, and am close to the quality achieved here, sitting at ~180 instructions with everything "turned on". The kicker? It's pure procedural. No textures are needed. So this is cool, no doubt about that. In my humble opinion though, it's not "good". It doesn't run fast, and it's more complicated than it needs to be.
Lee is right - you can use a gradient effect when you vertex paint in your chosen 3d modelling platform (I've done it in max), meaning the wind effect shifts from nothing to maximum along the length of the leaf/branch/whatever.
Maarten Hof talked about the way he produced his amazing environment, inspired by the amazing Uncharted 4.
I started this project when I started working at Ubisoft Massive, so it took me about two months to complete. I only worked on this project in the evenings and weekends. I have to say, I already made some assets for previous projects that never saw the light of day but proved useful with this project. I wanted to see how it’d be if I worked on a project next to my new fulltime job. I also wanted to challenge myself by coming up with my own concept because it was a most asked question as to why I never made my own concepts. I wanted to come up with my own composition, lighting, story elements etc. The main inspiration came from Uncharted 4. Naughty Dog games have been an inspiration to me ever since I started with environment art. In addition, the attic of Igor Kulkov also inspired me a lot, especially on the storytelling side.
I knew from the beginning that I wanted one very strong key-light coming from the window, this would be the sun. I also wanted the sun to have a nice orange tint because you can’t go wrong with a bit of golden hour! I borrowed this straight from the Uncharted 4 attic. The environment itself came together very naturally. I didn’t have much trouble with composition and the big props (Chair, desk, cabinet etc.) were in there from the very start and I didn’t really move them during the production. Every time I finished an asset I added it to the scene and it started to really come to life. Before starting I knew I wanted to add some strong story elements and as the project evolved it slowly came together. First, it was some sort of man-cave-attic where a guy could practice his guitar and sit in front of his computer. This slowly evolved into a grandpa-attic where the kids could play when they visited. The shift to a grandpa attic gave me a lot of opportunities to add interesting story elements. My goal with this was to give it some kind of “Pixar vibe”.
Very early screenshot.
Something I really learned during my short time at Massive now is that silhouette is key and when done right this could easily stay in polygon-budget. I wanted to do this for my personal work too. Adding some extra poly’s to break the straight lines can really pay of in the end. Next to that, I wanted to push the “Uncharted” look. Uncharted is actually a very stylized game if you take a closer look. Lots of bright colors, nice contrasts, and sometimes bulky forms. I modeled all the assets in Blender and textured them in Substance Painter. Every asset has been baked down from a high-poly version. When Producing these assets I started with the assets that could easily fill up the environment by duplicating them. For instance: boxes, books, generic props etc. After I got these in place I started on the more “expensive” props. Expensive in this case means that there is only one of it in the scene. These props are also the most fun to make. By adding these in the latest phase of production I can make sure I have a solid “layer” to work on and this keeps me motivated to go the extra mile.
Overview of the silhouettes of the moving boxes.
Working in Blender
Blender is amazing! It makes it so much easier to work fast and efficient compared to what I used to use. For me, Blender works perfectly for these kinds of productions. Within Blender I have altered almost all the shortcuts and made the program my own; this makes it super fast to produce assets.
I didn’t use a lot of fancy tricks for this environment but I used a few techniques that would be fun to explain: For the attic itself (so the wooden frame) I used tiling textures, these look great because you can push a lot of detail when a texture is tiled. This is a very common thing in environment production. The downside of tiling textures is that normal maps won’t work very well on edges. Without this normal map, edges can look really “cheap” and not very “next-gen”. To make the edges still look good I used “custom vertex normals”. This technique costs a bit more polygons but comparing that to the cost of an extra normal map just for the edges is nothing, especially in this time and day where polys are no longer the bottleneck but draw-calls are. The technique itself is very simple. Vertex normals, or often called just “normals” are used to direct shading/lighting on a 3D model. (I am not talking about normal maps) Custom vertex normals are normals that face exactly the same way as the face itself. If you add a bevel between two faces the light falls really nice over this edge.
Difference between regular vertex normals and custom vertex normals.
To make the hanging blankets over the chair and files-cabinet I used blenders’ cloth simulation tool. This is super easy to set up and gives some great results. I used this same tool for the curtains. It’s not as powerful as Marvelous Designer but it’s perfect for what I needed.
There is one plugin I used called: UV Squares. This is a super powerful plugin for when you want to get the most out of your tiling textures. I used this plugin for the ropes that are hanging. When unwrapping these ropes there are no straight UV islands so a tiling texture would look a bit weird. To fix this UV Squares straightens out the UV islands.
Difference between UV-Squares and regular unwrap.
The texture production was actually fairly simple. I didn’t want to focus on making my own textures with Substance Designer too much. Instead, I grabbed some from textures.com and altered these textures with Substance Designer to fit my needs. Then I generated the color-map, normal, metallic and roughness -maps within Designer. Working this way saved me a lot of time compared to making every texture myself. I didn’t make this environment to show off my Substance Designer skills but to show and practice my lighting and composition skills. This also shows that Designer is a solid managing tool for textures. I could easily modify the color, normal, metallic and roughness map all in one Substance file. This would be possible in Photoshop but would be a pain in the ass to manage.
Example of the color map for the wood texture before and after Substance.
For texturing all the assets I used Substance Painter with a standard high-poly to low-poly workflow. Within Painter, I usually like to work on a pre-made smart material and alter this one to my needs. On top of that, I build my own materials with fill layers and smart masks.
I would say that the lighting in this scene is simple but effective. In essence, there is only one light source; the sun. Under the hood, there are a few more: two area lights and a dozen real-time point-lights to add some nice rims and reflections. The point lights are purely there to make the environment pretty for my portfolio. If I had to build a working scene of this environment I would disable these lights. The directional light that acts as the sun is set to mixed. This means that the light can illuminate static and non-static objects, cast real-time shadows and can change intensity and color(not too extreme). I set this light to mixed because I wanted sharp real-time shadows (something that is hard to achieve with baked lights) but I also wanted the global illumination and ambient occlusion from this light. The two area lights are situated in front of the windows. In real life next to the direct shadows from the sun, there are also soft shadows coming indirectly from the light source. The two area lights mimic this behavior in my scene.
Real life example of direct and indirect sunlight.
The position of the area-lights in Grandpa’s attic.
Breakdown of Grandpa’s attic lighting.
The point lights are strategically placed where they help the metals in my scene to catch some nice reflections and highlights.
The biggest challenge was staying motivated and figuring out where I wanted to go with this environment. What really helped me was that I had a clear vision of what I wanted to portray: a cozy looking attic with little story elements. During the production, I figured out what kind of story elements and how I would show them in the scene. What really helps me when I am stuck at some point I like to just model a generic asset that would fit anyway. That way you are still working on the same scene but you don’t have to think much about the scene itself. After this, you can look with a fresh pair of eyes and figure out where to go next.
I hope this gives a bit of an inside on how I produce environments. If you have more questions or want to know something I did not cover here, feel free to message me on ArtStation!