Pages

Monday, January 30, 2023

Southeastern Forest Scene Week 1

 Over the next couple of months, I'm taking a foliage class. I'll post my weekly progress here. This scene will be a southeastern conifer forest based on some nearby parks that I've visited.

For this first week, I gathered reference, created some sketches, and started on the leaf atlas. It's been a while since I last used ZBrush, so this has been a great refresher. 

Other than that, it's also my first time using PureRef to organize reference photos. So far I really like using it. Previously, I usually put reference photos together in Photoshop, but this is more flexible and easier to use. Compared to Photoshop, the main thing that I like is how you can keep adding full resolution images and increase the canvas area without performance getting affected.




For my sketch, I also experimented with a new technique where I make separate layers for local color and lighting. I enjoyed working this way because it somewhat mimics 3D rendering. I definitely want to try it again on future sketches.

Additionally, I practiced perspective with this. The main thing I focused on was approximating the cone of vision to make sure nothing gets distorted in the shot. I found this helpful page explaining cone of vision: https://courses.byui.edu/art110_new/art110/week02/cone_of_vision.html

Following the video, I made a circle bigger than the image and then made sure it was about 60% as wide as the distance between the vanishing points. This should give a standard 60 degree viewing angle.



To create the leaf atlas, I sculpted one leaf and then duplicated it a few times. With the deformation, move, and clipping tools, I bent the overall shapes and added some damage to vary them up. The cylinder on the left is a placeholder for a tiling stem texture.

That's it for the first week! The next step is baking this atlas and creating materials in Substance Painter.



Sunday, October 16, 2022

How to Convert World Space Normals to Tangent Space

    Recently, I ran into some shading issues using a world space normal map on my billboards. When instanced meshes have different rotations, it seems Unreal Engine can't keep the normals consistent. Since Unreal's imposter baker creates world space normal maps, I needed to find a way to convert them to tangent space.

 


Billboards with world space normals.

Billboards with tangent space normals.


    To fix this issue, I converted my world space normal map to tangent space with xNormal. Here are the steps that I took.


  1. First, there are two things that you need. One is the source mesh, and the other is the world space normal map baked from that mesh.



  2. Rotate the mesh to match xNormal's coordinates. I don't yet know a great way to figure this out, so I just guessed until I got it working. For me using 3ds Max, I rotated the mesh 90° in X and 180° in Z. Make sure to reset XForm before rotating. If there are already transforms on the mesh, this will interfere with how xNormal interprets the orientation.



  3. Export the mesh as an obj file. These are the settings that worked for me.



  4. Go to the tools section in xNormal, open the object/tangent space converter, enter the settings for your mesh, and generate. In this case, Xnormal is actually converting from object space to tangent space. So long as you didn't move your mesh from it's original pivot point, it should work fine with world space normals.




  5. Check the output tangent space map. It should look something like this. This is close, but you will still need to edit some of the channels so it's compatible with Unreal.



  6. Look at the individual RGB channels of the map in an image editor, such as Photoshop. If you imagine a light shining from the edges of the image, you can get a sense of how the channels should look. In this map, red is coming from the left, green from the bottom, and blue from the back. For Unreal Engine, you want the red from the right, green from the bottom, and blue from the front.

    These are the original axis directions in the baked tangent space map.

    These are the directions needed for Unreal Engine. In this case, the red and blue channel are inverted.


  7. Invert the red and blue channels of the texture. I used Substance Designer for this. Using an RGBA split, I inverted the red and blue channels and then re-merged them. After that, I used the alpha channel to make a mask for the background areas. To expand the edges of it a bit, I used edge detect. After that, I filled the area with the default normal map color. This should prevent any artifacts on lower MIP maps in the texture.



    The final normal map.


  8. Finally, import the normal map into Unreal. There are two options for how you can import it. One is importing it like a standard normal map without changing any settings. For the other, you can import it as a linear color texture and then adjust it in the material. I opted for the linear color because it seems to take slightly less space.



  9. If you want to use a linear color map, change all settings to default and uncheck sRGB. Whenever you use it in a material, make sure to add a constant bias scale node. Set the bias to -.5 and scale to 2.

    Linear color texture settings.


    Make sure to add a constant bias scale node anytime you use a linear color normal map.

    That's it! You should now have a functional tangent space normal map.

 


Sunday, February 27, 2022

Lighting and Skydome Progress

     Lately, I've worked more on the tea mesh, the lighting, and the sky dome. My goal is to make it feel like a cloudy early morning. I think it's getting a bit closer, but I still want to layer in more clouds in the sky dome. In addition, I'm planning to add some flow maps and panning noise textures for animation.




    Next, I'm going to work on the cloud cards that are placed in the level. I think they're too translucent right now, and I want to give them more of a sense of volume. Another thing that I want to do is make the ground less flat looking. If I make a ground cover mesh and perhaps add tessellation and more roughness variations to the terrain materials, that should help give it more depth. Overall, I think those will be some good goals to work on next. Afterwards, I can continue refining the tea mesh and sky dome.

Tuesday, January 4, 2022

Progress on Landscape Materials

        Over the last couple of weeks, I worked on landscape materials. I thought this project would be a great opportunity to get more practice with Substance Designer. Following the "Forest Ground" tutorial by Get Learnt w/ Chunk, I made a ground generator to create three main material variants.



        I also followed a tutorial by Bohdan Bilous to create a terrain generator. Right now, I'm only using the color as a macro texture for the landscape material. I'm planning to use it for the background mountains later on too. Basically, I just blended between the close texture and the macro texture based on the distance between the material world position and the camera.




        Next, I will add more variations to the ground materials and work on a custom cloud mask for the sky. Additionally, I'm going to revisit the tea plants too. I think they could use a bit more dimension and negative space to them, so I'm going to see if I can add more cards and rely less heavily on the filler mesh that I'm using in the center of the plant.



Thursday, December 9, 2021

Block Out Part 2

        Here's an update on the block out. I added some clouds, edited the lighting a bit, and painted some basic colors on the landscape.


        Next, I'm going to block out a few more areas along the main road and start on some of the landscape materials.
 

Sunday, November 28, 2021

Tea Garden Block Out

        I'm taking a break from the Bigfoot project to work on something with a smaller scope. My plan is to make an environment inspired by the tea gardens in Darjeeling.



        So far I've made some hills and placed some tea plants throughout the scene. I also made a blueprint to scatter the plants along a spline.

        In terms of assets, I want to limit the scene to the tea plants, ground materials, and some background trees and mountains. Next I'll block out the background elements to fill in the rest of the scene.


Monday, March 8, 2021

More Updates

        I worked more on the badger burrow area and some general lighting and material updates. In front of the badger burrow, I added some blood decals. Hopefully that draws more attention to it and makes it seem more dangerous. 

 


        Aside from that, I started to mask material layers for the background terrain. I used some basic tiling materials for now. My plan is to bake a new texture from some of my foliage meshes to make the distant mountains look more like they're covered in trees.



        Another thing I've been working on is a balsam fir tree. So far I have one normal variation and a more windswept version. Next I'm going to make a web covered version that's infested with gypsy moth larvae. Hopefully I can add the webs in Speedtree. That would allow them to react with the wind consistently with the rest of the tree.

 


 

        My next priorities are importing the trees, placing them throughout the level, and baking some textures for the mountains. I think that will help fill in a lot of empty space and get it to feel more like a forested mountain top.