Requirements
You should be familiar with the Unity Game Engine.
You should be able to program in a procedural language such as C#.
Description
This course presents a comprehensive guide to programming with Cg and High Level Shader Language in Unity’s Shaderlab to create your own visual surface effects for colouring and lighting game objects. It covers the mathematics of light and surfaces and steps you through the recreation of some of the most popular shaders. Many computer graphics concepts will be presented to help you understand the graphics pipeline and provide you with an essential toolkit of rendering knowledge that will have you developing your own transparent, animated and texturised shaders in no time.
In this course, Penny teaches all the invaluable skills you will require to program the computer graphics pipeline in Unity from scratch using her internationally acclaimed teaching style and knowledge from over 25 years working with games and graphics. But hold on tight as you’ll be taken on a journey across the computer graphics realm as it is taught to post-graduate university students. Through detailed descriptions and hands-on workshops examining all you need to know about rendering queues, vector mathematics, graphics buffers, colour theory, 3D meshes, texture mapping, lighting models and much more.
Learn how to program and work with:
variables and packed arrays,
meshes, vertices and UVs,
the mathematics for working with objects in 3D and 2D spaces,
a variety of lighting models from creating flat shaded objects to highly reflective shiny surfaces,
bump maps for adding extra depth and dimension to surface textures,
special effects such as holographic, scrolling textures and surface deformations,
the variety of graphics buffers used in the rendering pipeline,
forward and deferred lighting, and
surface, vertex and fragment shaders written in CG/HLSL.
Contents and Overview
After diving right in and creating your very first shader from scratch we will begin the lessons by examining how 3D models are structured and how that is used within shader code to colour and display the surface in computer graphics. You’ll discover all the properties of a shader and how they can be controlled in code and via values fed in through Unity’s Inspector.
Following this we will examine a variety of lighting models and how lights and surface textures can influence the final look of a render. Included here, an overview of the buffers involved in the rendering queue will be given with practical examines for creating special effects that require more than one draw call. Students will also be exposed to the power of vector mathematics and especially the dot product and its role in creating beautiful effects such as outlines, rim lighting and holograms. In addition, issues surrounding transparency and blending will be discussed along with many practical hands-on workshops in which students can flex their new found skills to interrogate the code they write for better understanding.
The final section of this course brings all the skills learned throughout together to develop some of the more popular complex shaders including animated plasma and animated water with waves.
Who is the target audience?
Anyone fascinated by the way computer graphics works.
Anyone wanting to understand how to write their own shaders.
Anyone who loves the visual effects that can be achieved through simple code and mathematics.