Learn how to build realistic materials in Houdini with CG Forge's Shading Theory with Karma. This set of tutorials explores concepts that define materials in the real world then teaches how to create them in Houdini. Learn how to adjust the right properties on the Principled Shader to achieve the desired results. 

All of these lessons use a specially designed Shaderbot that lets you explore the materials as you create them. This shaderbot is available for download below to help you as you work through the lessons. These lessons uses the Solaris/LOPs context in Houdini and the SideFX Karma renderer for generating images.


Get started with an introduction to the lessons and explore the shaderbot scene file that will be used to create the materials. The shaderbot includes a series of switch nodes for choosing different backdrops, HDRIs and Key Light setups to make it easy to examine how each material looks.

Length: 04:01

PART 1: Diffuse Reflection

This lesson dives into Diffuse Reflection and compares how this concept is usually taught to how it really works at the atomic level. You will then learn how the Principled Material handles diffuse reflections when rendering with Karma.

Length: 08:23

PART 2: Specular Reflection

This lesson will explore reflections in the real world including dielectrics, semi-conductors, & metals. You will gain an understanding of metallic and specular reflections including Fresnel effects where specular reflections occur at grazing angles.

Length: 10:45

PART 3: Roughness & Absorbtion

Learn what roughness means for diffuse reflections along with how roughness changes specular lobes. Explore the relationship between Fresnel and roughness and learn about absorption and best practices for albedo parameters. These concepts will then be tested on the principled material using the shaderbot.

Length: 10:47

PART 4: Shading Exercises

Starting with a collection of images, you will learn how to pick colors from each reference along with when to use the Metallic parameter and where to find the IOR of a metal on the web. By researching and analyzing reference, you can achieve the look you need for each material. This lesson also explores smooth dielectrics and how to sample metals.

Length: 11:59

PART 5: Texture Maps, Anisotropy, Sheen and Clear Coat 

This lesson continues the creation of the real life materials. Here you will learn how to use texture maps with the Principled Material and best practices for using bump maps. Next you will explore the use of anisotropy, sheen and the basics of coat settings. 

Length: 13:59

PART 6: Transparency

Learn how to achieve realistic transparency. This involves setting proper refraction & reflection limits to suit your model. Learn why light bends with transmission and what IOR [index of refraction] can do for the 3D artist. You will also talk how Dispersion affects the transparent look of your shader even though this feature along with nested dielectrics are not yet supported in Karma. 

Length: 13:41

PART 7: Subsurface Scattering

Here you will learn the difference between diffuse and subsurface reflections. Starting with a real-world analysis of subsurface/diffuse objects, you will then learn how in CG you can use either single-scattering
or multi-scattering to get the look you need. This lesson will also explore the Transmission Color options on transparent shaders to achieve a colored glass effect.

Length: 09:48

PART 8: The Golden Challenge

Now that you know how to use the Principled Material to achieve different looks, you can try to create realistic gold using the techniques you have learned. To assist you, this lesson establishes basic gold parameters and addresses how to generate accurate RGB values for metals.

Length: 07:23



Hey, I'm Tyler Bay - 3D Artist, teacher, and owner of cgforge.com. I aim to make tutorials that are thorough, accessible, and straight to the point.

More from Tyler Bay


  • BabaJ 1 week, 3 days ago  | 

    Thanks very much for this. I don't have good shading skills/knowledge and like working in Lops with Karma. So very very useful. Looking forward to setting time aside and go through this.

  • MohamedMohsenGFX 1 week, 3 days ago  | 

    this is amazing

  • belkinserge 1 week, 3 days ago  | 


  • ogwin95 1 week, 3 days ago  | 

    wow, this is great!

  • quinniusmaximus 1 week, 3 days ago  | 

    love the walkthrough of all of this... not seeing the image with the duck and frying pan though.

    • rmagee 1 week, 2 days ago  | 

      The image has been added above next to the video.

  • 3dman 1 week, 2 days ago  | 

    Fantastic Tyler! This is awesome!!!
    Merci ;-)

  • Scara 1 week, 2 days ago  | 

    Nice one.

    • Scara 1 week, 1 day ago  | 

      Wanted to add, your explanations are wonderfully clear and despite thsi being a hobby for over 22 years, I was always a little unclear. Your diagrams and explanations re a general view of what is happening at an atomic atomic level let me have my ....ah ha moments.

  • digitalwu 1 week, 1 day ago  | 


  • rav3nclaw 1 week, 1 day ago  | 

    Nice, learned a few new stuff :) thanks

  • Alfredo _ Brite Bone 1 week ago  | 

    I am liking Karma more and more importing Nulls easily, thanks for these tutorials to study.

  • BabaJ 5 days, 10 hours ago  | 

    In your teapot example you were wondering what the coating might be. Ceramics with coatings like that are called glazes. They can have a number of elements in their composition to give textures and colors for desired results after firings. However, the main component is silica (not the elemental silicon). In the pixelandpoly web site you gave it's ior is under 'Glass, Fused Silica' with an IOR of 1.459 - not much different than the the 1.4 you use which is why it works well.

  • BabaJ 5 days, 10 hours ago  | 

    Might want to add the texture file used in Part 5 so people can get the same results when following along?

    • tbay312 3 days, 12 hours ago  | 

      Hi BabaJ,

      If you're looking for texture maps, I'd recommend visiting textures.com, poliigon.com/, texturehaven.com/, or creating your own through a combination of photography and photoshop.

      As I mentioned in the video, I prefer not to distribute texture maps due to copyright considerations. Thanks for watching, and have a nice day.

      • BabaJ 3 days, 9 hours ago  | 

        Thanks Tyler.

        Just wanted to let you know if you plan on doing a paid tutorial that expands upon the topics you covered in this tut series - you've got a willing to pay customer here.

        Maybe like making custom shaders and examples of why one might want to do so - Situations where a principal shader just isn't enough?

        I believe SideFX had a MasterClass on such a topic for around H16/17 and is likely still relevant, but I don't remember it giving an example of why one would to venture into that with examples.

        As a side note I was trying to understand what the heck is Random Walk SSS is about on a current SideFX forum thread and found someones hip on the topic, but found something related to your tuts here that could be useful to know for viewers of the tut.

        You used the example of bringing up render properties for the Karma Viewport Renders of being able to set Refraction Limit('D' with mouse over viewport) - and that it is a setting not available on the Karma node itself.

        There is however a 'Render Geometry Settings' node where one can set Refraction Limit(amongst other settings) for the Karma render node to get renders that work for ip or to disk.

        • tbay312 3 days, 8 hours ago  | 

          That's great to know that you can find those limitations in the render geo settings as well. Thanks for the tip! Right now I'm developing a course called "Shading Theory" as a followup, and those videos will be designed to take the ideas in "Shading Theory" a step further by comparing various workflows, specific situations, and topics that are universal to all render engines.

          Cheers BabaJ

          • BabaJ 2 days, 10 hours ago  | 

            Looking forward to that tut. Thanks.

Please log in to leave a comment.