top of page
Lecture 1

During the first lecture of the course, we got hold of the module's main aims and objectives. Besides, we looked at the Unity game engine and learnt how to work with its interface and assets.  For practice, we downloaded and imported the LoPoly Environment Pack from the Asset Store and tried to play around with it. 

Asset Store

We can download assets, plugins and various free and paid content from Unity Asset Store. To access the Asset Store, we may find it within Unity or go to https://assetstore.unity.com in a browser. To familiarise ourselves with the interface, I downloaded LoPoly Environment Pack and imported it through Package Manager in Unity. 

Lec01_Unity_Screenshot (282).png

Accessing the Asset Store within Unity

Lec01_Unity_Screenshot (285).png

Importing the package and all its elements to Unity

Player camera setup

Adding Standard Assets from the Asset Store, we can set up a first-person camera controller easily to add player navigation to our scene. 

Lec01_Unity_Screenshot (287).png

Standard Assets is a big package and includes many elements and objects. To find the first-person camera, we head to Characters -> First Person Character -> Prefab -> FPSController within the Unity project panel.

 

Note: Adding the first-person controller, we need to delete the previous camera in the scene. 

Note: To be able to use FPSController, we need to fix some files. The files can be found here: https://github.com/johnathanhales/UnityStandardAssetFixes. We need to put those fix files into the Standard Assets -> Utility inside our project folder. 

Populating the scene with Prefab elements

I tried to create my own scene using prefab elements of LowPoly Environment Pack. Below is some of the scene I made: 

Lec01_Unity_Screenshot (288).png
Lec01_Unity_Screenshot (290).png
Lecture 2: Maya Scene Organisation, Sculpting and Displacement

During lecture 2, we explored Maya Scene Organisation, Display Layers, Sculpting and Displacement. 

Some important techniques and workflows we got introduced to: 

Camera Clipping Planes:

Do objects disappear when dollying out? We need to change "Far Clip Plane" in Perspective camera attributes.

Lec02_Screenshot (291).png
Grouping and Hierarchies

We use Groups and Hierarchies techniques to organise our assets and make the navigation and management of them easy. 

Isolate selected display

We can isolate the selection in the viewport in Maya when working with them in order to focus on the modelling and texturing of specific objects in the scene. To isolate the selection, go to the Show menu at the
top of the viewport -> Isolate Select -> View Selected.

Instancing and Duplicates

Instanced duplicates are useful for modelling or laying out complex scenes. When we use instancing, every time we edit the original object, Maya updates the instanced versions as they have reference to the original. 

Lec02_Screenshot (294).png
Lec02_Screenshot (295).png
​Hiding and Unhiding objects

We can hide and unhide objects in the scene by going to Display -> Hide -> Hide Selection (Ctrl+H) and Display -> Show -> Show Selection (Shift+H) 

Display Layers / Display Attributes

We use Maya's Display Layers and Display Attributes to organize a scene better. Select objects, then go to the Channel Box/Layer Editor -> ‘Display’ tab -> Layers -> Create Layer from Selected.

Screenshot (296).png

We can toggle the layer between different modes: Standard mode, Template or Reference. Template mode displays the objects in the wireframe and makes them unselectable in the viewport. Reference mode makes the objects visible but unselectable.

Lec02_Screenshot (297).png

These options can also be set for each object from the Attribute editor under the object’s Shape node, as below:

Lec03_Screenshot (298).png
Poly Count and Poly Display

We use the Heads Up Display tools in Maya to get information on the scene, such as Polycount, which can be critical to some projects. To enable Polycount, I go to the Display menu -> Heads Up Display -> Poly Count.

Note: The second number of Tris is important for us to notice when we select an object and want to find out what is its polycount. 

Lec04_Screenshot (299).png
Smooth Mesh Preview & Smoothing

To make the model look less angular more smoothed, go to Mesh Display -> Soften Edge. We can also apply the smooth to the object permanently by going to Mesh -> smooth. 

Soft Selection modelling

To enable Soft Selection, double click the Move tool in the Toolbox on the left in Maya. It will display the tool Settings. Expand the Soft Selection section to set the tool. 

Note: Shortcut to enable Soft Selection mode: B

Lec02_Screenshot (325).png
Sculpting Tools

Maya has some built-in Sculpting tools that allow you to sculpt on surfaces like a plane, etc. We can either go to the Sculpting shelf and double click on the Sculpt tool to open up the settings and sculpt or go to Mesh Tools -> Sculpting Tools

Note 1: To change the brush's size: Press B and drag the mouse to the left or right. 

Note 2: To change the strength of the brush: Press M and drag the mouse to the left or right. 

Lec02_Screenshot (326).png
Displacement Maps

To add more details, we can use Displacement maps as stamps within Maya to draw on the surface using an image and create Displacement.

Lec02_Screenshot (327).png
Lecture 3: Intro to Environment Modeling and Texturing

This week, we learnt more about different methods for modelling and texturing the environment in Maya. We looked at how to create trees and foliage in Maya considering LOD (level of detail) and using some texturing and modelling techniques.

Displacement maps and stamps

We can find different images to use as displacement sculpt stamps in Maya’s Content Browser. To find all sculpting stamps within Maya, go to Windows -> General Editors -> Content Browser. 

CGI_Foundations Lec03_Screenshot (329).p
CGI_Foundations Lec03_Screenshot (330).p
Stamp images on Textures.com

Click here to check out various resources and assets on Textures.com.

Alpha channel textures - Alpha leaves

Alpha channels can be used in textures to build detail elements in our environment assets, such as plant leaves and branches. Below, I only created a plane, assigned Lambert to it, and loaded a Tif image with Alpha channels. The Hypershade window can show us the shading network of the leaf. 

CGI_Foundations Lec03_Screenshot (331).p
CGI_Foundations Lec03_Screenshot (332).p

Then, to create a more sophisticated branch, I duplicated my leaf models and placed them around a stalk. The result was as following: 

CGI_Foundations Lec03_Screenshot (334).p

Note: to rectify the incorrect behaviour of showing depth in the viewport, go to the Renderer menu above the viewport -> Viewport 2.0 -> Set Transparency Algorithm to Depth Peeling or Alpha Cut.

CGI_Foundations Lec03_Screenshot (333).p
Lecture 4: Lighting and rendering with Maya's Arnold & Viewport 2.0 renderers

By looking at Maya's Arnold Renderer, Viewport 2.0, and the Unity Game Engine, we explored lighting for realtime and offline rendering this week.

Depth map and raytraced shadows 

The results of using either depth map shadows or ray traced shadows are almost identical, but depth map shadows require less time to render.

Learn more about depth map and raytraced shadows in Maya: click here!

depth_map ray_traced shodows.png
Maya light types

There are different light types in Maya, and some are suitable for specific purposes and situations. Having a good understanding of lights in Maya could help us determine what light we need to use inside our scenes. To play around with different lights, I imported a .STL file into Maya. 

Note: To import a .STL file into Maya, make sure the stlTranslator.mll plugin is loaded.

To add light to the scene, go to Create -> Lights. These lights under this menu are different from the Arnold lights. 

CGI_Foundations - Lec04_Screenshot (355)
CGI_Foundations - Lec04_Screenshot (356)
CGI_Foundations - Lec04_Screenshot (357)
Light blockers

Add an aiLightBlocker under the Light Filters section of the Attribute Editor when the light is selected.

CGI_Foundations - Lec04_Screenshot (358)

I changed the shape of the filter to a plane, as below: 

CGI_Foundations - Lec04_Screenshot (359)

Play around with Density to get the desired result: 

CGI_Foundations - Lec04_Screenshot (360)
Spot lights' settings

When using Spotlights in Maya, the Cone Angle, Penumbra Angle, and Dropoff settings adjust the light's spread and range.

CGI_Foundations - Lec04_Screenshot (361)

Note: To check if the light has Depth Map or Raytrace Shadows turned on, go to Shadows -> Depth Map Shadow Attributes or Raytrace Shadow Attributes. See below: 

CGI_Foundations - Lec04_Screenshot (362)
Two important settings for real-time rendering (ViewPort 2.0)

Ambient Occlusion (AO) adds shadow detail to occluded areas and Anti-Aliasing (AA) smooths edges. Enable them by heading to ViewPort 2.0 settings. 

Screenshot (364).png
Lecture 5: Maya organic modelling, UV unwrapping and ZBrush detailing

This week we explored organic subdivision surfaces modelling in Maya, UV Mapping and the export/import pipeline with ZBrush, making surface details and normal maps. 

OBJ export to Zbrush

To export a model to OBJ format from Maya to Zbrush, we need to go to Windows -> Settings/Preferences -> Plug-in Manager and load the objExport.mll plugin there. 

CGI_F_L05 Screenshot (405).png

To export the OBJ file, go to File -> Export Selection and select OBJexport file format. 

CGI_F_L05 Screenshot (406).png

Inside Zbrush, import the OBJ file and then subdivide it a few times. 

CGI_F_L05 Screenshot (407).png

Below is a tree model brought from Maya into Zbrush.

CGI_F_L05 Screenshot (408).png
Pixologic Alpha Library

To get access to the Pixologic alpha library, click here

Detailing in Zbrush using Alpha Stencils
 
CGI_F_L05 Screenshot (409).png

Alpha -> Import. 

CGI_F_L05 Screenshot (410).png

Alpha -> Make St. Making Stencil from the imported Alpha stamp. 

CGI_F_L05 Screenshot (411).png

Turn Stencil On. 

CGI_F_L05 Screenshot (413).png

Draw on the surface using the stencil. Press the spacebar to bring up the gizmo and move/rotate the stencil around

Exporting TIF from Zbrush
CGI_F_L05 Screenshot (414).png

Note: we cannot create a Normal Map when the object is at the highest subdivision level. Therefore, we first need to bring the subdivisions one level backwards. 

CGI_F_L05 Screenshot (415).png

Created Normal Map. 

CGI_F_L05 Screenshot (416).png

Pressed Clone NM before exporting the map. 

CGI_F_L05 Screenshot (417).png

Pressed Flip Vertically before exporting. 

CGI_F_L05 Screenshot (419).png

Exported the map as a Tif file. 

Bring the Normal Map into Maya
CGI_F_L05 Screenshot (420).png
CGI_F_L05 Screenshot (421).png
UV unwrapping workflow

Understanding UVs is one of the most important parts of 3D modelling and texturing. This crucial and handy concept is explained by me here

Assignment 1: CGI Dimensions of Practice 
Final Renders

Bellow is my baby T-rex dinosaur, modelled from a simple cube in Maya, textured and developed in Substance Painter and Zbrush

Arash_Dinosaur01.jpg
Arash_Dinosaur04.jpg
Arash_Dinosaur03.jpg
Some techniques and workflows I used
CGI_Assignment1 Screenshot (371).png

I set up reference images as display layers.

CGI_Assignment1 Screenshot (377).png

Used Duplicate Special Options to create an instance from the object and make the modelling easier and faster.

CGI_Assignment1 Screenshot (372).png

Made a perfect cube by making an instance from half of it. 

CGI_Assignment1 Screenshot (380).png

Started to move various edges and vertices to shape the cube a bit. Checked different views at every single step. 

CGI_Assignment1 Screenshot (382).png

Shaped hands and legs a bit. This was just a starting point. I worked on details later on. 

CGI_Assignment1 Screenshot (449).png

I found Relax Tool a very handy tool to relax the mesh a bit. 

CGI_Assignment1 Screenshot (450).png

Tried to delete history from time to time as progressing through modelling. 

CGI_Assignment1 Screenshot (453).png

Started to work on the mouth. 

CGI_Assignment1 Screenshot (456).png

Used Soft Selection

CGI_Assignment1 Screenshot (457).png

Worked on the eyes. 

CGI_Assignment1 Screenshot (459).png

Modelling the nostrils. 

CGI_Assignment1 Screenshot (461).png

Used extrusion a few times to shape fingers and nails. 

CGI_Assignment1 Screenshot (462).png

Fingers and nails modelled. 

CGI_Assignment1 Screenshot (497).png

I went on to model the tongue, using extrusion again. 

CGI_Assignment1 Screenshot (498).png

Tongue modelled. 

CGI_Assignment1 Screenshot (499).png

Made another cube, this time to model teeth. 

CGI_Assignment1 Screenshot (500).png

Shaped a tooth. 

CGI_Assignment1 Screenshot (501).png

Set up its UVs before moving on to details. 

CGI_Assignment1 Screenshot (503).png

Duplicated the tooth. 

CGI_Assignment1 Screenshot (504).png

Sphere for the eyes.

CGI_Assignment1 Screenshot (505).png

Deleted the inner part of the eyes. 

CGI_Assignment1 Screenshot (506).png

Placed the eye in the place. 

CGI_Assignment1 Screenshot (509).png

Layed out the UVs. 

CGI_Assignment1 Screenshot (510).png

The eyes' UVs. 

CGI_Assignment1 Screenshot (513).png

Important: Mesh -> Mirror to mirror the half of my dinosaur. 

CGI_Assignment1 Screenshot (514).png

Set "Mirror Axis Position" to "Object", and "Mirror Axis" to "X"

CGI_Assignment1 Screenshot (515).png

The result of mirroring the mesh. 

CGI_Assignment1 Screenshot (517).png

Important: ran Cleanup to find faulty non-manifold geometry

CGI_Assignment1 Screenshot (518).png

Set Operation to Select matching polygons. 

CGI_Assignment1 Screenshot (549).png

Took my T-rex to Zbrush to use alphas and stencils. 

CGI_Assignment1 Screenshot (550).png

The result. 

CGI_Assignment1 Screenshot (553).png

Took it to Substance Painter for painting and texturing. 

CGI_Assignment1 Screenshot (554).png

Used various layers and materials. This is the result. 

Week 8: Substance Painter

This week, we looked at the Substance Painter user interface, material workflows and render settings. I downloaded a free asset and tried to practise by working with different layers and applying various materials. 

Introduction to Substance Painter

I have explained some tips and techniques related to this powerful piece of software here (click here)

Practising Substance Painter
CGI_F_LEC08 Screenshot (555).png

I added a fill layer with red colour. Then, added a white mask and a generator.

CGI_F_LEC08 Screenshot (556).png

Selected Metal Edge Wear. It applies the red colour to the edges. 

CGI_F_LEC08 Screenshot (557).png

This is the result, but I wanted the reverse effect. So needed to invert the mask to apply the red colour to the skull and have the edges grungy. 

CGI_F_LEC08 Screenshot (558).png

The result of the mask reversed. 

CGI_F_LEC08 Screenshot (559).png

Made different paint layers (base colour + height channels) and used alphas. 

CGI_F_LEC08 Screenshot (560).png

Iray renderer settings. 

Week 9: Substance to Maya 

This week, we practised exporting Substance maps and textures and set them up in Maya's Hypershade for rendering with Arnold. 

Practising Substance Painter and experimenting with different workflows 

As a way of skills and knowledge consolidation, I tried to learn and practise various useful workflows and techniques in Substance Painter. Using the MeetMat sample as a jumping-off point, I developed my skills of painting and texturing with Substance. 

Result
CGI_F_LEC09 Screenshot (579).png
CGI_F_LEC09 Screenshot (578).png
Some tips and techniques

I used different Hard Surfaces as the Normal channel of a paint layer. Note: Set the blending mode for a normal paint layer to Normal Map Detail. 

CGI_F_LEC09 Screenshot (562).png

To have the bumps and Normal textures affected by the Smart Material, I moved the Normal paint layer inside the folder of Smart Material, at the bottom of its layers. Then, I added an anchor point to the paint layer.

CGI_F_LEC09 Screenshot (563).png

To have the newly added normal textures affected by the Edges Damages layer of the Smart Material, I click on the layer Mask Editor, a generator, and headed to Micro Normal to introduce the anchor point I previously added. 

CGI_F_LEC09 Screenshot (564).png

Selected my Anchor Point. 

CGI_F_LEC09 Screenshot (565).png

Set Referenced Channel to Normal

CGI_F_LEC09 Screenshot (566).png

Set Micro Normal under the generator properties to True, then played around with its settings. 

CGI_F_LEC09 Screenshot (567).png

As a way of adding more details and realness, I added an Ambient Occlusion channel to my texture set. Now I am ready to use AO filters. 

CGI_F_LEC09 Screenshot (570).png

Added AO channel. 

CGI_F_LEC09 Screenshot (571).png

Found the MatFx HBAO filter in the shelf, dragged and dropped it on top of my layer stack

CGI_F_LEC09 Screenshot (572).png

Change Channel Source to Normal

CGI_F_LEC09 Screenshot (573).png

Added another channel, this time an Emissive one. 

CGI_F_LEC09 Screenshot (574).png

Added Emission to a Fill Layer, and used masks. To be able to use multiple masks, I set the blending mode to Multiply

CGI_F_LEC09 Screenshot (575).png

Used Metal Edge Wear generator. 

CGI_F_LEC09 Screenshot (576).png
Substance to Maya
Substance_to_Maya.png
Shading Network (with Ambient Occlusion plugged into it)
CGI_F_LEC09_AO02.png
Render by Arnold
ARASH_MEETMAT_V01.jpg
Assignment 2

For assignment 2, I continued to work on my shading and texturing skills and take my MeetMat texturing to the next level by adding more details, exploring new workflows and polishing my texturing. The aim of this assignment was to demonstrate a clear understanding of the material, shading and texturing techniques across packages such as Maya and Substance Painter. I used both of them for the purpose of this assignment. 

I have already recorded and shown all development works and techniques I used for texturing my MeetMat sample. Here, I will show a few new render images to demonstrate how I developed my texturing further. 

ARASH_MEETMAT_V02_01.jpg
ARASH_MEETMAT_V02_02.jpg
ARASH_MEETMAT_V02_03.jpg
Week 12: NURBS & Poly Surface Modeling

We looked at NURBs in Maya this week. NURBS (Non-Uniform Rational B-Splines) are one of the geometry types available in Maya for creating 3D curves and surfaces. Polygon and subdivision surfaces are other forms of geometry that Maya offers.

We can use NURBs in two ways:

  1. Make 3D models out of NURBS primitives: simple 3D objects in the shape of standard geometric forms such as cubes, spheres, cones, and so on are known as primitives. Many 3D models can benefit from the use of primitives.

  2. Construct NURBS curves that describe the basic outline of the 3D shape we wish to build, then utilise the curves to build NURBS surfaces.

For more information about NURBs modelling in Maya, click here

Week 14: Lighting and Rendering

This week, we got a deeper understanding of lighting and rendering in Maya and Unity. In addition, we got to know how to reduce noise when rendering, by understanding where the noise is coming from. Inadequate sampling will often cause noise, but raising sampling for the incorrect rays might increase render times without removing the noise.

noise_in_maya.jpg

User guide to remove noise in Arnold: click here

Change sampling settings by going to Render Settings -> Arnold Renderer -> Sampling

image2018-4-4 18_0_8.png
Assessment 3: Personal Development

For this assignment, I decided to model and texture an old rusty bike abandoned for many years. I aimed to make a corroded, tarnished, and rust-covered bike, and I wanted it to seem natural and realistic. For this purpose, I used both Maya and Substance Painter, and I availed myself of various techniques and workflows. 

Final Renders
Iray renders:
AS_BIKE_IRAY_V01.jpg
AS_BIKE_IRAY_V02.jpg
Arnold renders:
AS_BIKE_ARNOLD_01.jpg
AS_BIKE_ARNOLD_02.jpg
Development of my bike
bottom of page