Week 9
*In Progress*
Week 8
Week 7
Progress Renders
These are some progress renders. I am having a difficult time understanding lighting and still have to experiment with that. The problem with movable lights is that they also create really dark shadows and no bounce light. I may change some to static so it would illuminated more of the dark parts.
I imported in some more assets like the pot, cup, and tree of life. I still need to figure out how to add the leaves to the tree, but just wanted to see how it looked in the environment so far.
Modeling
I finished modeling the branches of the tree of life by extruding along curves. I never really modeled foliage before, so this project really helped me understand some good and bad ways to model organically. I am still trying to figure out how to add planes (which I will use as leaves) to the branches.
I also UVed the tree but still have to go back and fix some areas that seem stretched. I mostly just wanted to see how it looking in the environment, so I began texturing it.
For the pot and cup, I only needed one texture map set for both objects. I was able to assign different 'materials' by baking the UVs into a Color ID Map which reads the separate poly groups and allows you to apply certain texture layers to certain objects.
This creates the need for only one set of texture maps for a group of objects rather than multiple texture maps for each separate object. I had sort of forgotten this process, so it was great getting a chance to refresh my skills.
UVing and Texturing
Materials
I made a basic master material with a Texture, Normal Map, and Occlusion Roughness Map and made them all parameters so that I could instance the master material into different materials for my assets. I also added a switch node that allows me to choose if I want to use a roughness value or plug in a roughness map depending on the asset.
The last image shows the different instances I made of the master material for each of my assets. Since they are only instances, I don't have to go into each of their node graphs, but can just change their textures through their parameters.
Week 6
Modeling
I wanted to make some more narrative telling assets. I was inspired by the Tree of Life and how it metaphorically connects all living things. I though this went well with the story I want to tell, so I began modeling a tree based off of that idea and want it to be a monument in the environment.
To make the branches, I extruded circularized faces along a curve to make swooping gestures. I still need to work on making it more grandiose and detailed. I also modeled the teapot and cup that the monk would use based off the storyboards.
I also UVed most of the assets. For the rocks, I UVed low poly versions of them and would later bake a high poly mesh onto the low poly in Substance Painter. I had sort of forgotten this process, so it was great getting a chance to refresh my skills.
UVing
These, on the right, are an example of what the Unreal Engine 4 template outputs when exporting the textures in the end.
The last map is an example of the Occlusion, Roughness, and Metallic being in a single map with each of the passes in its respective RGB channel.
Texturing and Baking in Substance Painter
When making a new project in Substance, the first thing that was different is the Normal Map Format which should be DirectX instead of OpenGL like I am used to.
I learned that the Unreal Engine 4 template automatically puts the Occlusion, Roughness, and Metallic into a single map with each of the passes in the RGB channels. This is very useful in condensing the amount of maps and memory needed when importing textures into Unreal.
The first thing I did was bake the high poly mesh onto the low poly mesh that has UVs. Bake Mesh Maps can be found in the texture settings of the material. I changed the resolution to 2K and accessed my high poly FBX file next to High Definition Meshes.
Baking high poly onto low poly allows all of the details of the high poly to literally be stamped onto the low poly mesh without affecting any geometry or UVs. The outputs of baking are shown below. All of the baked maps have the high poly details.
This is my process for texturing the rocks. I started with a base layer that included the basic color, height, and roughness using different types of noises.
I added a smart mask layer to created moss and turned up the gradient parameter so the moss would be heavier on top and less so towards the bottom.
I created another smart mask layer to add larger splotches of dirt and color variation to the gray rock. This made some parts more brown and red compared to others.
Lastly, I added a smart mask layer to create lighter or darker dirt to the curvature of the mesh.
Week 5
Trees and Grass
I used Maya to model some variations of palm trees and grass and imported them into Unreal. I made the leaves and grass using flat triangular planes and the bend deformer.
Before exporting, I made sure that the pivot was at the bottom of each asset so they would scale correctly in Unreal. I actually had a lot of fun modeling the trees, I want to make more jungle type trees as well.
Importing and Painting Foliage
When importing the trees and grass, I realized that they would come in sideways since Maya is OpenGL and Unreal is DirectX. To fix this, I had to change the import rotation of x to 90 so it would import upright.
Once I brought the plant assets into Unreal, I added them as foliage and used the Foliage Mode to paint them onto the landscape. I found that you can only paint them onto a landscape and not onto other assets like the rocks.
This was a really cool tool to use and also really simple. I dragged all the assets into the Add Foliage Type section. This allowed me to pick which foliage I wanted to paint with and I could pick multiple at a time. The grayed out assets are the ones not selected. I painted the grass first and then the trees.
There is a menu bar above the viewport where you can choose to paint or erase foliage as well as pick the brush size and how dense the foliage should be.
You can also control the min and max scale so that the selected foliage would not randomize smaller or larger than the specified scale.
The purple dome that is seen in some pictures represents the brush size and the area that it is effecting.
Niagara Particle System
I also decided to learn some basics of particles in Unreal to make some simple fireflies. First I made a Niagara Emitter which sort of looks like the Material editor. When creating one, you can choose a base emitter to work off of. I chose Hanging Particulates which has swirling particles inside of a rectangular volume. There are a lot of options to customize the particles.
Spawn Rate controls the amount or density of particles in the volume.
Min and Max Life controls the range of the particle's lifetime.
Sprite Size controls the scalar range the particles can randomize into. I turned it higher to make them more noticeable.
Noise Strength and the other attributes control the type of noise that the particles follow when moving around.
Scale Color controls the color of the particles through RGB constant values.
There is also an option to change the size of the volume that the particles are contained inside so that they could cover a larger or smaller area.
After making the emitter, a Niagara System has to be made from it. This is the actual asset that can be dragged into and viewed in the scene.
Week 4
Rendering
I had a hard time understanding how to render in Unreal. For still images however, it is fairly easy. I just had to take a High Resolution Screenshot. This was so quick and odd from my normal workflow but also very excited. Rendering sequences is still a bit confusing however.
ExponentialHeightFog
There is an Exponential Height Fog tool can be used to create atmosphere fog. You can change the density, fall-off, and color as well. These are some variations I made with it.
SkyAtmosphere
There is an Sky Atmosphere tool in Unreal that can be used to make a realistic sky and is extremely useful in exterior lighting. All of these variations and more can be made with the one tool. This combined with the Sky Light and Exponential Height Fog decrease the sharpness of the horizon line and create a more accurate atmosphere. I press CTRL+L and can move left a right with the gizmo that comes up to change the time and lighting of the day.
Mudbox Rocks
Terrain and Layout
I did sculpt a bit of terrain using the Landscape Mode to act as the mountains outside of the cave. I stacked the rocks and rotated them to give more variation when building the cave. I still need to work on the positioning and sculpt more.
The Landscape tool allowed me to paint height onto a subdivided plane. I could paint, erase, and smooth areas to get the look I wanted.
I started using Mudbox to create variations of rock to import into Unreal. I have experience with Zbrush so Mudbox was very similar to work with.
While working, I turned on tessellation for the meshes so that it would adjust to the detail that I wanted to get. After finished that, I
re-topologized and went down to the lowest subdivision I could have without losing too much detail.
I want to put better normal maps for the materials later on to give the fine detail I am looking for. The rocks are still a bit too high poly right now, so I need to turn it down to UV them. The good news is that Unreal automatically replaces the assets in the scene with the new version when reimported with the same name.
Houdini Rocks
I was originally using Houdini to make procedural variations of rocks and cliffs, but I had an error exporting the geometry as objs and ended up switching to Mudbox.
Later I found out that I needed to convert the final asset into polygons for it to export.
During this process, I began with a sphere and used the Mountain node to add some large displacements onto it. I used soft transform to flatten the bottom portion of the rock and then used the ray node to sort of project the original geometry into a new mesh. The topology still bothered me in the re-projected mesh, so I re-meshed it and then used another mountain node with smaller displacements to add more detail to the rocks.
I then packed the one rock and copied it onto the points of a line. I also tried copying onto the jittered volume points of a rectangle, but I liked the visual of the line points better.
Week 3
Reflection Capture
This is what a Sphere Reflection Capture looks like. There is a also a Cube and Planar which can be used for a specific form.
Point Light Movable
Point Light
Static
Direct Light Movable
Direct Light Static
Red Rock Material
Moss Rock Material
Master Material
Parameters surfaced from node network
Different materials from same master created by changing parameters
Introduction to Unreal
This was my first introduction to the Unreal Engine interface and how it works. I learned how assets can be exported in. How to make materials and material parameters. How reflections work and the different types of reflections. How lighting works, the different types of lights, and the difference between static and movable lights.
I have been using this tutorial by Unreal Sensei which has been very helpful. All of these assets so far are from him.
There is also a large library of materials and premade assets in the Unreal "Starter Content" which can be set up in every project.
Reflections
There is a huge difference in how reflections and lights work in Unreal versus Houdini or Maya.
Since the whole point of Unreal is optimization for games, there are other options for creating reflections other than Raytracing.
There is something called a Reflection Capture, which comes in many shapes. When placed in a scene, it takes an hdri of the space from its position and projects that onto any object in its radius. This is shown on the left. The spheres each have a separate Sphere Reflection Capture that is projecting a 360 image onto each of their surfaces from their respective positions for accurate reflections.
Lights
Just like reflections, lights are also work very different.
Familiar types of lights are available:
Directional, Point, Spot, Rectangle, and Sky Lights
There are 3 settings for any light:
Static: This allows for global illumination and bounce light giving a more realistic render. This setting bakes out a light map for the environment before hand and cannot be changed or adjusted during the game. It allows for fast rendering since it is only calculated once.
Stationary: This uses partially baked light maps of the shadows and bounce light, but leaves the rest of the light as dynamic. The intensity and color of the light can change and the shadows are dynamic and can move with the object.
Movable: Lights can be moved and changed in the scene. The shadows will adjust to movements, but the result is not as realistic and results in slow rendering.
Materials
Materials are all node-based. I used some premade materials and added onto them with other Unreal texture and normal maps.
It was interesting to see how different nodes can be used together to create a material. Constant nodes can be plugged into each parameter (normal, roughness, base color, etc.) to change the overall value. Or maps can be plugged in for variation.
I experimented with the interface and made two materials. I learned that materials do not update in real-time, so when making a change in the network, the change must be saved first for it to be updated on any objects in the actual scene.
To avoid this back and forth, a master material can be created and then instanced to create separate materials with parameters that can be changed and updated in real-time.
Master Material: Node-based material created in the same way as the first two materials shown on the left. Specific nodes can be picked and changed into parameters that can be accessed without going into the node network (like surface parameters in Houdini but for materials).
Material Instance: This can be made from the master material and includes just the parameters that were chosen from the node network. The parameters for base color, normal strength, and texture maps can be easily changed as shown on the left.
Using material instances from a master material allows only one node network to be made for multiple materials and real-time parameter updates which quickens workflow.
Week 2
Week 1
Proposal
I will mainly be working on a personal project where I will create a cave environment in Unreal using Terrain and the new Houdini procedural tree tool. This will introduce me to the software and be my first real-time rendering project. This may also continue to Studio I with some adjustments to the storyline. If time permits, I want to fully texture and light the environment. I will also be volunteering to model assets for an environmental awareness short film called Footprint. By the end of the quarter, I want to have a decent understanding of the Unreal Engine and improve my modeling and texturing skills.
Storyboard
This is a very short storyboard to show off the atmosphere and environment I want to end up creating.