We may earn an affiliate commission when you visit our partners.
Penny de Byl and Penny Holistic3D

This course presents a comprehensive guide to creating vertex and fragment shaders using Unity's visual programming tool Shader Graph.  There's no need for prior knowledge or programming of shaders needed.

Over 15 Hours of step-by-step tutorials and challenges.

Shaders developed in this course work with Unity 6

Read more

This course presents a comprehensive guide to creating vertex and fragment shaders using Unity's visual programming tool Shader Graph.  There's no need for prior knowledge or programming of shaders needed.

Over 15 Hours of step-by-step tutorials and challenges.

Shaders developed in this course work with Unity 6

Filled to the brim with follow-along and shader creation challenges, this course will give you a thorough grounding in shader development and the fundamental practices in Physical-Based Rendering (PBR) with a member of the Unity Game Engine's Educational Advisory Board and an acclaimed academic and teacher with over 30 years experience.

This course will guide you through the process of creating your own visual surface effects for colouring and lighting game objects. It gently covers the mathematics of light and surfaces and steps you through the recreation of some of the most popular shaders, including Fresnel, Complex Water, Holograms, Flowing Lava, Liquids, Fire, and more.  The shader concepts will be presented in an easy-to-understand manner to help grasp 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 Unity's Built-In, Universal, and High-Definition Render Pipelines.

This course has been developed with Unity 2021.3 LTS

Learn how to program and work with:

  • Unity's Shader Graph.

  • Model, Camera, and World View Coordinate Spaces.

  • Lighting Effects.

  • Procedurally Generated Patterns.

  • Normals.

  • Scene Depths.

  • Refraction for Transparent Surfaces (and much more)

In this course, Penny teaches all the invaluable skills you will require to interact with the computer graphics render pipeline using Shader Graph in Unity from scratch using her internationally acclaimed teaching style and knowledge from over 30 years of working with games and graphics.  Through detailed descriptions and hands-on workshops, you'll learn all you need to know about rendering queues, vector mathematics, graphics buffers, colour theory, 3D meshes, texture mapping, lighting models, and much more.

Contents and Overview

After diving right in and creating your very first Shader Graph shader from scratch, you delve into the fundamental concepts of creating an unlit shader and discover how colours can be mixed for surface effects, and how to put an external texture onto a game object.

Following this, you will examine a variety of lighting models and how lights and surface textures can influence the final look of a render.  In this part, you will develop shaders with different lighting and investigate physically-based rendering that caters for metallic surfaces and considers world reflections. The remainder of the course concentrates on building up your essential mathematics skills related to creating shaders and focussing on the essentials that you can take and customise for your own needs.

Finally, there's an advanced water shader section on adding special effects to water surfaces such as depth colour, waves, surface foam, and splash particles.

What students are saying about Penny's other shader courses:

  • This course is amazing. Penny has got to be, hands down, one of the best instructors on game development, Unity, and C#. In the span of three hours, I have learned so much that it rivals my graduate program.

  • Best shader course I've come across. There are enough and more tutorials on youtube to teach you how to develop your own shaders, but nothing falls into the class of Penny's tutorials. They are clear and to the point. Really happy about this one.

  • Wow. Thank you so much. If there were 10 stars - this course would deserve it. Going from absolutely knowing nothing about Shader writing to have a profound understanding about it.

  • I wanted to let you know that I just finished your shader course and thought it was fantastic. It was a pleasure to take the course and finally get a grasp on a topic that seemed so foreign to me not so long ago. Your teaching style and personality really worked for me and made learning a breeze.

Enroll now

What's inside

Syllabus

In this section you will be welcomed to the course and provided with support contact information.

This lecture contains a welcome message from the teacher.

Read more

H3D has a bustling online student community.  Here's how to get involved.

Important Reading on Common Issues students have and how to ask for help.

In this section you will learn how to get up and running with Shader Graph, create your very first shader and then discover how shaders and rendering works.

In this lecture students will learn how to install Shader Graph and gain an overview of the editor interface.

In this lecture students will create their very first shader using the shader graph editor.

In this lecture students will learn about the rasterisation pipeline and how the shader graph fits into the programming of rendering effects.

In this lecture students will learn about the datatypes used in shaders and explore the subset of these provided by shader graph.

In this section you will investigate unlit shaders and learn about colour, vertices, normals and uv mapping.

In this lecture students will learn how to make the most basic of flat colour shaders in shader graph and apply to a model.

In this lecture students will learn about the data structure of colour and it's importance in shaders.

In this lecture students will learn how vertex positions can be used to set pixel colours.

In this lecture students will learn about normals and how to use them to colour a model.

In this lecture students will learn how multiple colours can be mixed together and the ramifications of choosing differing operations to do this.

In this video student will learn how to create a custom node and use it to create their own functions for mixing colours.

In this lecture students will learn how to use the pixel colours from a texture and apply them to a 3D model according to the UV values.

In this section you will learn about lighting models and how they are calculated before examine some light effects.

In this lecture students will learn how to create a simple diffuse lighting shader from scratch.

In this lecture students will learn about the Phong, Blinn-Phong and Physically Based Rendering Shaders.

In this lecture students will learn about the physics and theory involved in physically-based rendering and then setup up their own shader to use it.

In this lecture students will learn how to use a texture to set the values of metallic and smoothness.

In this lecture students will discover how to implement sliders to interface with their shaders and change the intensity of a variety of values.

In this lecture students will learn how to use a skybox or sphere map to create reflections on an object.

In this lecture students will learn how to correct a reflection shader to reflect an environment and how to add that environment to the camera's background.

In this lecture students will learn how to create reflections of world items on the surface of objects.

In this lecture students will learn about ambient occlusion and use an external texture to add these subtle shadows to a model.

In this section you will learn what it takes to get a vertex in a 3d model transformed to a pixel on the screen.

In this lecture students will begin to explore the differences and conventions between tangent, object, view and world space.

In this lecture students will explore the object space further and take a look at manipulating the vertices of an object.

In this lecture students will investigate using vertex world space positions to colour a shader.

In this lecture students will explore the view space coordinates and how they are calculated and used.

In this lecture students will learn about tangent space and explore why and where it is used.

In this lecture students will be challenged to make a shader with multilevel colours and a normal map.

In this section you will delve into Unity's various render pipelines and discover the differences between the builtin, universal and high-def render pipelines.

In this lecture students will gain an overview of Unity's Render Pipelines and for what they are best suited.

In this lecture students will learn take a first look at the Unity Editor with a URP Core Project and create a simple shader.

In this lecture students will learn how to create a sub graph and use it in a shader.

In this lecture student will get their first experience creating a HDRP project.

In this lecture students will learn what bent normal maps are and how they are calculated to improve ambient occlusion shading.

In this lecture students will learn about the differences between forward and deferred rendering, what each offer and how they affect shaders.

In this section you will discover more about colour theory and how pixel values can be blended.

In this lecture students will examine the basic principle of blending two images together.

In this lecture students will learn the colour blending techniques of linear and colour burn.

In this lecture students will learn about many more mathematical equations that can be used to generate different blending effects.

In this lecture students will investigate the blend modes that emphasise the blackest pixels.

In this lecture students will learn about the lightening blend modes as well as how to introduce an alpha map into the shader to create a hole.

Contrasting Blend Modes
In this section you will learn about timing and how it can be used to create dynamic, animated shaders.

In this lecture students will learn about the time node and how to use it to scroll a texture across a surface.

In this lecture students will learn how to create a twirling portal shader implementing the time node and

In this lecture students will learn about the lerp node and how it can be used to blend between colours.  It will be used to modify the colour on Zombunny to display a health status.

In this lecture students will begin to use lerp to adjust the level of a liquid inside a bottle model.

In this lecture students will learn how to complete a liquid shader by making the top part of the lerp into air.

In this lecture we will revise the concept of tiling and examine how it works to seamlessly paste a texture onto a surface.

In this lecture students will learn more about masking textures and how to integrate them with other texture maps.

In this lecture students will learn how to use a time node to animate the colour of a masked texture.

In this section you will learn how mathematics can be used to create interesting and random textures that simulate natural phenomena.

In this lecture students will learn how to use a sine wave to displace the vertices on a flat plane.

In this lecture students will learn how to implement simple noise to set the heights of a terrain creating shader.

In this lecture student will learn how to create a simple wood grain texture using simple noise and smooth step.

In this lecture students will experiment with other procedural effects and normal map creation to improve the wood grain shader.

In this lecture students will learn how to create a procedurally generated tiling pattern.

In this lecture students will learn about the variety of procedural shapes that can be used and tiled in ShaderGraph.

In this lecture students will learn about the origins of the Voronoi Diagram and use it to create a rippling curtain effect.

In this lecture students will learn how to use gradient noise to create a fire flame effect.

In this lecture students will complete the simple fire shader and begin turning it into a subgraph.

In this lecture students will learn how to use multiple layers of flame effects with different ramp images to create a more complex fire effect.

In this lecture students will learn how to create a displacement effect of a diffuse texture to make an object look as though it is under rippling water.

In this section you will learn how to take advantage of the depth buffer for simulating depth effects in shaders.

In this lecture students will learn how bump mapping works to fake geometry.

In this lecture students will learn about the original method of bump mapping.

In this lecture students will learn how normal maps store vector information and then how ShaderGraph can. be used to blend maps together.

In this lecture students will be challenged to create their own normal blending nodes and to apply a different blending technique.

In this lecture students will learn how to calculate a Z value for normals that have had the X and Y values modified.  They will also be challenged to add tiling functionality to the normal maps.

In this lecture students will implement scrolling with a normal map as well as a procedural animation to the uv values of a texture to animate it from within.

In this section you will apply your knowledge of depth buffering to create depth intersection effects for force fields and water.

In this lecture students will learn how to use a shader to find the intersection between objects in the scene to colour around those intersections.

In this lecture students will examine how to use a texture to define the depth intersection and then be challenged to change its colour.

In this lecture students will learn how to expand the size of the depth intersection zone.

In this lecture students will learn how to make a forcefield shader using the depth intersection and fresnel effect.

In this lecture students will learn how to complete the forcefield shader by adding a fresnel effect to the depth intersection and animate the texture.

In this lecture students will learn how to use depth intersection to colour objects below a water plane and be challenged to use Voronoi Noise to place ripples on the surface.

In this section you will investigate the different effects light can have on transparent and colourful surfaces.

In this lecture students will learn how the fresnel effect can be used to create a crystal/glass effect.

In this lecture you will be challenged to create a holographic shader with a variety of visual effects.

In this lecture students will learn how to create refraction.

In this lecture students will learn how to extend a refraction shader to create an ice effect.

In this lecture students will learn how to create an iridescence effect which shows on highly polished surfaces.

In this section you will put all your hard work in learning shaders into practice to create a flowing water simulation with particle effects.

In this lectures students will learn how to setup a scene with different meshes and begin creating a scrolling water texture.

In this lecture students will learn how to include refractions in the flowing water.

In this lecture students will start creating the shader for the pool water beginning with setting the colour dependant on depth.

In this lecture students will add normals to the water as well as use the same nodes to add refraction.

In this lecture students will learn how to use gradient noise to create waves for vertex displacement.

In this lecture students will learn how to use the Fresnel node with scene depth to add foam on top of the pool around the edges.

In this lecture students will learn how to setup a particle system on a mesh emitter and use shader graph to colour particles.

In this lecture students will complete the water project by learning how to pass particle system values into a shader graph in addition to changing the colour of the waterfall,

Some Final Words from Penny

Save this course

Save Your Ultimate Guide to Shader Graph for Beginners to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Your Ultimate Guide to Shader Graph for Beginners with these activities:
Review Vector Mathematics
Reviewing vector mathematics will help you better understand the underlying principles of shader creation and manipulation of 3D objects.
Browse courses on Vector Mathematics
Show steps
  • Review vector addition, subtraction, dot product, and cross product.
  • Practice applying vector operations to transform points and directions.
  • Study how matrices are used to represent transformations.
Read 'The OpenGL Shading Language'
Reading 'The OpenGL Shading Language' will give you a deeper understanding of the underlying shader language and how Shader Graph translates visual graphs into code.
Show steps
  • Read the chapters related to data types, operators, and control flow.
  • Study the examples of shader code and try to understand how they work.
  • Compare the GLSL code with the Shader Graph equivalent.
Read 'Real-Time Rendering'
Reading 'Real-Time Rendering' will provide a deeper understanding of the rendering pipeline and the mathematical concepts used in shader development.
Show steps
  • Read the chapters related to shading, lighting, and texturing.
  • Study the mathematical foundations of rendering.
  • Experiment with implementing some of the techniques described in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Recreate Existing Shaders
Recreating existing shaders from tutorials or examples will help you solidify your understanding of Shader Graph and improve your problem-solving skills.
Show steps
  • Find shader examples online or in other projects.
  • Attempt to recreate the shader in Shader Graph from scratch.
  • Compare your result with the original and identify any differences.
  • Refine your shader until it matches the original.
Document Your Shader Creation Process
Documenting your shader creation process will help you organize your thoughts, identify areas for improvement, and share your knowledge with others.
Show steps
  • Choose a shader you want to create.
  • Document each step of the creation process, including the reasoning behind your choices.
  • Include screenshots of your Shader Graph and the resulting visual effect.
  • Share your documentation on a blog, forum, or social media.
Create a Custom Material Library
Creating a custom material library will allow you to reuse your shaders in multiple projects and experiment with different visual styles.
Show steps
  • Design a set of materials with different properties and visual effects.
  • Create Shader Graph shaders for each material.
  • Organize your materials into a library that can be easily imported into Unity projects.
  • Document your materials and their properties.
Contribute to a Shader Graph Project
Contributing to an open-source Shader Graph project will allow you to collaborate with other developers, learn from their expertise, and improve your skills.
Show steps
  • Find an open-source Shader Graph project on GitHub or GitLab.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.

Career center

Learners who complete Your Ultimate Guide to Shader Graph for Beginners will develop knowledge and skills that may be useful to these careers:
Shader Developer
A Shader Developer specializes in creating and optimizing shaders for various platforms and applications. As a shader developer, a deep understanding of shader languages and rendering pipelines is critical. This course offers a comprehensive introduction to shader creation using Unity's Shader Graph, covering topics such as lighting models, texture manipulation, and special effects. The course explores different rendering pipelines, including Built-In, Universal, and High-Definition, ensuring a versatile skill set. You will learn to develop transparent, animated, and textured shaders. This course will be invaluable, providing hands-on experience with shader development and the graphics pipeline.
Technical Artist
A Technical Artist bridges the gap between artists and programmers, optimizing art assets for game engines and ensuring they function correctly. This role requires a strong understanding of shaders, and this course helps build a foundation in shader development using Unity's Shader Graph. You can learn to create visual effects, manipulate textures, and optimize shaders for various rendering pipelines, skills that are essential for creating visually appealing and performant games. Knowing the mathematics of light and surfaces provides you with the toolset to develop your own shaders. If you aspire to become a technical artist, this course is a great starting point, teaching you about rendering queues, vector mathematics, and lighting models.
Game Developer
A Game Developer is involved in the creation of video games, including gameplay mechanics and visual effects. Shaders play a crucial role in enhancing the visual quality of games, and this course gives you the skills to create and customize them using Unity's Shader Graph. You can learn to develop shaders for various effects, such as water, fire, and holograms, enhancing the immersive experience for players. The course covers the mathematics of light and surfaces, providing you with a toolkit of rendering knowledge. If you want to create visually appealing games, this course may be useful, as it covers rendering queues, vector mathematics, and texture mapping.
Virtual Reality Developer
A Virtual Reality Developer creates immersive experiences for VR platforms, where visual fidelity is paramount. Shaders are essential for creating realistic and engaging VR environments, and this course provides a comprehensive introduction to shader development using Unity's Shader Graph. You can create shaders for special effects, lighting, and realistic material rendering, enhancing the sense of presence for VR users. Learning about rendering queues, vector mathematics, and graphics buffers helps you to create high-quality VR experiences. For aspiring VR developers, this course may be useful for adding visual depth to their projects.
Augmented Reality Developer
An Augmented Reality Developer integrates digital content with the real world, often requiring sophisticated visual effects. This course helps you create custom shaders using Unity's Shader Graph to enhance the realism and interactivity of AR applications. You can learn to develop shaders for lighting, reflections, and material rendering. You can also add special effects, like depth and transparency, to create convincing AR experiences. With its exploration of colour theory, 3D meshes, and texture mapping, this course builds a foundation for AR development.
Real-Time Visual Effects Artist
A Real-Time Visual Effects Artist creates visual effects that are rendered in real-time, as opposed to pre-rendered effects. This course may be useful for understanding the intricacies of shader development using Unity's Shader Graph, as it helps you to craft stunning real-time effects. Learning about rendering queues, vector mathematics, and lighting models is crucial for creating performant and visually impressive effects. The ability to create custom shaders for special effects, such as water, fire, and explosions, enhances visual storytelling. The course’s thorough grounding in shader development means that real-time visual effects artists can benefit greatly.
3D Artist
A 3D Artist creates three-dimensional models and environments for various applications, including games, film, and architecture. This role may benefit from this course, as it helps to apply shaders using Unity's Shader Graph to enhance the visual quality of 3D models and environments. Gaining thorough grounding in shader development and knowledge about rendering queues, vector mathematics, and texture mapping is valuable. Being able to create custom shaders for lighting, textures, and special effects enhances the realism and visual appeal of 3D art.
Motion Graphics Designer
A Motion Graphics Designer creates animated graphics for various media, including film, television, and web. Shaders can be used to enhance the visual appeal of motion graphics, and this course may be useful in learning how to create custom shaders using Unity's Shader Graph. The knowledge of lighting models, texture manipulation, and special effects can be applied to create dynamic and engaging motion graphics. The course’s thorough grounding in shader development is indispensable, as it will help motion graphics designers.
Technical Animator
A Technical Animator focuses on the technical aspects of animation, such as rigging, skinning, and shader development. Shaders can be used to create special effects and enhance the visual quality of animations, and this course provides an introduction to shader development using Unity's Shader Graph. Learning about lighting models, texture manipulation, and vertex manipulation is valuable for creating dynamic and engaging animations. This course may be useful for learning about lighting queues, vector mathematics, and colour theory.
Simulation Developer
A Simulation Developer creates realistic simulations for various purposes, such as training, research, and entertainment. Shaders are essential for creating realistic visual effects in simulations, and this course may be useful for understanding shader development using Unity's Shader Graph. You can learn to create shaders for simulating natural phenomena, such as water, fire, and weather effects. The course can help you gain the skill set to create simulations effectively.
Software Engineer
A Software Engineer designs, develops, and tests software applications. While not directly related to core software engineering, knowledge of shader programming can be valuable when working on graphics-intensive applications or game development projects. This course may be useful in providing a basic introduction to shader development using Unity's Shader Graph. Learning about rendering pipelines and graphics concepts helps you to understand the underlying technology behind visual effects.
Web Developer
A Web Developer creates websites and web applications. Although shaders are not typically used in web development, knowledge of shader programming can be valuable for creating interactive and visually appealing web experiences using technologies like WebGL. This course may be useful in gaining a basic understanding of shader development using Unity's Shader Graph. Learning about graphics concepts and rendering pipelines provides a foundation for exploring advanced web graphics techniques.
Data Visualization Specialist
A Data Visualization Specialist creates visual representations of data to help people understand complex information. Shaders can be used to enhance the visual appeal and interactivity of data visualizations, especially in 3D environments. This course may be useful in gaining a basic understanding of shader development using Unity's Shader Graph. The knowledge of colour theory, lighting models, and texture manipulation can be applied to create visually compelling data representations.
Instructional Designer
An instructional designer creates learning experiences, such as online courses and training materials. This course may be useful in designing interactive and visually appealing educational content for subjects related to computer graphics or game development. Understanding rendering pipelines can help communicate complex content.
Quality Assurance Tester
A Quality Assurance Tester tests software and hardware to ensure they meet quality standards. If you are a quality assurance tester, this course may be useful in testing visual effects and shader implementations in games or other graphics-intensive applications. Understanding rendering pipelines would provide a better understanding of shader-related issues.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Your Ultimate Guide to Shader Graph for Beginners:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Your Ultimate Guide to Shader Graph for Beginners.
Comprehensive guide to real-time rendering techniques. It covers the mathematical foundations, algorithms, and hardware aspects of rendering. It valuable resource for understanding the concepts behind Shader Graph and implementing advanced rendering effects. This book is commonly used as a textbook at academic institutions and by industry professionals.
Provides a comprehensive guide to the OpenGL Shading Language (GLSL), which is the foundation for many shader languages. While Shader Graph abstracts away the need to write GLSL directly, understanding the underlying language can be helpful for advanced shader development and debugging. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser