Monday, 4 June 2018

Week 3 - Monday: Stairway Rug

I have been looking at some other game environments with a similar theme to my project and found this piece by artist Zack Parkinson:

PARKINSON, Z. (2017). Abandoned Scottish Manor. [Online Image] Available at: https://www.artstation.com/artwork/BDXzl [04/06/2018].

I feel that the ruffled carpet on the stairway gives a lot of credibility to Zack's environment because it is slightly messy, which adds a touch of realism to the scene. I was curious about how he went about creating this asset and I found this article from 80 Level.com which provided a lot of helpful information on how Parkinson created his environment.

80 LEVEL (2017) Tips and Tricks of 3d Interior Production. [Online] Available from:
https://80.lv/articles/tips-and-tricks-of-3d-interior-production/ [Accessed: 04/06/2018]

Zack stated that he used Marvelous Designer to create the folds of his carpet. Unfortunately I didn't have access to this software, so I ended up creating my stairway carpet entirely within 3DS Max. I still used the ProOptimiser modifier that he suggested to reduce the poly count at the end. My method had the drawback of not being able to create the final UV map first as I wasn't simulating fabric but manually creating the folds onto the geometry myself. This was a time consuming method but I did come up with some creative solutions to speeding the process up a bit. In future I would like to invest in learning Marvelous Designer as any tool that can make my workflow more efficient will always be worth it in my opinion.

I started by extruding the faces of my existing stairway and adding cuts along the surface of the faces. Adding additional edges will cause the geometry to "tighten" in those areas when smoothed. You can see the results of this in the image below:

The folds in the geometry were modelled manually and then smoothed out using the Turbo Smooth modifier.

On the left hand side is the model with the additional edges that I added to create the appearance of fabric. On the right side is the model once it has been smoothed with the Turbo Smooth modifier. You can see this is quite a simple way of adding creases to geometry. A benefit to this method is that I had complete control of where I wanted the creases to appear, something that simulations don't always give you.

The finished carpet.

Once the model has been smoothed, the resulting polygon count of the geometry is very expensive:

The wireframe view of the high poly model.

The folded details at the end of the carpets were simulated using the Cloth modifier in 3DS max. I chose to simulate these details instead of modelling them as I had done for the smaller creases on the steps. I felt as these folds were going to be far more complex, it would be easier to get a realistic looking result by using the Cloth simulation rather than modelling them myself. I created a new poly plane and applied the Cloth modifier alongside a series of collision objects for the cloth to interact with. You can see the simulation below:

An animation of my cloth simulation in action.

Once the simulation was complete and I was happy with how the folded fabric looked, I then converted the plane into an editable poly and stitched it together with my main carpet model. Once it was attached I then turbo smoothed the geometry and added the Shell modifier to give some thickness to the carpet:

The completed carpet combined with the folded cloth simulation.

With the high poly model completed I then added the ProOptimiser modifier to greatly reduce the polycount of the model:

Creating a low poly carpet by using the ProOptimiser modifier. You can see how the mesh has been converted into triangles making it ideal for game engines.

I may have perhaps reduced the details of the carpet too much, as I now have a lot of ugly jagged edges. I wasn't sure if I could get away with more polygons for a single asset when it was already quite heavy to begin with. If I were to do this again I probably would increase the poly count, as visual quality is more important for this project then whether the thing is optimised well. Zack Parkinson seemed to keep his carpet quite high poly to preserve the details and this is something I wished I had done as well:

PARKINSON, Z. (2017). ProOptimizer - Preserve UV's. [Online Image] Available at: https://80.lv/articles/tips-and-tricks-of-3d-interior-production/ [04/06/2018].

With the low poly model complete, I created my UV maps and exported both the high poly and low poly models into Substance Painter for normal detail and ambient occlusion baking. You can see the base colour, normal value and ambient occlusion pass on the texture below:

The results of baking the high poly model onto its low poly counterpart in Substance Painter.

I looked at some images of stair carpets online and wanted to add some additional details to the texture such as a pattern running along the edges of the carpet. To do this would be a little tricky as I would need the pattern to adhere to the folds of the fabric in order to maintain realism. I started by selecting one of the ornate details that I had made earlier to use for my pattern:

The detailed 3D model I chose to use as the trim pattern on my carpet.

Once I had my details selected I used a feature within 3DS Max called the Align Spacing Tool. This lets you select geometry and make it follow along a spline path:

Taking a model and making it conform along a spline.

You can see this was a helpful tool for creating a pattern for the edge of the carpet:

The model following the spline path. I can increase the amount of times the pattern repeats along the selected path if I wish.

I exported my baked texture from Substance Painter and applied it to a square plane within 3DS Max. This enabled me to trace out a spline path along the edges of the carpet. The spline paths are represented by the thick white lines:

Creating spline paths along the edges of my carpet.

Below you can see the pattern following along the spline path:

My 3D model has been applied to the spline paths along the edges of my carpet texture.

Because these are all 3D models, I then had to turn them into a texture so that I could apply the pattern to my material in Substance Painter.

The pattern is comprised of hundreds of 3D models and needs to be turned into a texture.

Once the pattern was finished I then rendered the scene from a top-down orthographic view in 3DS Max. I then took the render into Photoshop and created this alpha mask for the pattern that I could use in Substance Painter:

I created this alpha mask from my render in 3DS Max.

This let me add my pattern to my material in the precise location that I wanted it. Once the alpha mask was in Substance Painter it was a quick process to create the final look of the material. You can see the finished stairway rug below:



Here's how it looks in the scene so far:



Overall I am quite pleased with the asset. There are still a few things I am going to change such as the underside of the carpet which looks a bit strange when you are close to it in the engine. I will be aiming to add more assets like this to the environment as I feel the 'messy' look of the carpet helps to show that the mansion is abandoned.

Whilst it did take a long time to setup, I do think the results of my technique were successful. However if I can save time I would still like to learn how to use Marvelous Designer as I cannot afford to spend this amount of time on every asset in my scene.

I'm going to be using 80 Level a lot more from this point onward as they have lots of helpful level breakdowns that I would like to reference to help me get better as an environment artist and perfect my workflow.

No comments:

Post a Comment