Learn to create photorealistic procedural shaders with Arnold and take advantage of the procedural nature of Houdini with this workshop by Wojtek Piwowarczyk, Environment Generalist TD for film, animation, and game cinematics.
During the course of 8.5 hours, Wojtek reveals his personal collection of techniques used in production and developed over several years while creating visual effects for a variety of entertainment projects. He covers not only detailed methods for creating procedural shaders but also discusses how Houdini’s procedural nature can be used to full effect. You’ll learn several techniques for extracting information from source geometry to create effective shaders — and because it’s procedural, you’ll be able to apply them to any models, and even reuse them entirely, or in parts, on future projects.
Wojtek’s ultimate goal for this workshop is to give viewers a solid foundation for procedural shading and an understanding of look development for surfaces. The robust methods he demonstrates for building shaders are techniques that are universal and will remain useful regardless of software, meaning your skills will stay relevant in the ever-evolving world of computer graphics. By completing this workshop, you should have developed the confidence to create any type of surface for any project.
ZBrush and Photoshop are also used in this workshop as part of the workflow. Project files include a complete Houdini scene with final processed objects, lighting, and shaders to assist with learning, as well as a breakdown of all the steps and shading techniques presented in the tutorial. The package also contains 3D models, ZBrush files, and baked displacement textures for relevant objects plus proxies for the Megascans textures used. This complete set allows you to recreate the scene from the tutorial and will serve as a base for your own look-development experiments.
16 Lessons
In this introductory lesson, Wojtek Piwowarczyk discusses a principles-based approach to shader development, focusing on artistic thinking and problem solving. He emphasizes that successful look development relies on careful observation of how real-world surfaces age and layer over time, combined with strategic decisions that support strong material and compositional design. By starting with flexible, neutral base materials and building complexity procedurally, Wojtek shows how adaptable shaders can be developed to serve both technical and artistic goals within a production pipeline.
Duration: 39m 39s
This lesson introduces the different render engines available in Houdini, establishing the fundamentals for working with Arnold and the shared scene setup used throughout the workshop. Wojtek outlines an approach to scene organization that separates element types into clearly labeled networks and uses procedural naming conventions to support flexibility across multiple render engines. By focusing on a clean, simple setup with minimal lighting, the lesson establishes a solid foundation for detailed shader development in the lessons ahead.
Duration: 39m 2s
In this lesson, Wojtek explores how Houdini can be used to enhance imported geometry with attribute data for shading without destructively modifying the original mesh. By pre-calculating information such as occlusion, curvature, and position gradients directly into geometry attributes, greater control over shader variation is achieved while improving render performance. The approach to attribute naming and ID assignment creates a flexible, artist-directed system that works across different rendering pipelines and scales easily to entire scenes of assets.
Duration: 45m 37s
In this lesson, Wojtek outlines optimization techniques that help maintain a smooth workflow in Houdini, particularly when preparing for shader work and rendering. He covers separating preview geometry from render geometry, using multi-threading where appropriate, and managing LOD and instance display to keep heavy scenes responsive without compromising final render quality. The lesson emphasizes how viewport performance can be effectively managed through proper flag usage and geometry optimization, allowing creative focus to remain uninterrupted by technical constraints.
Duration: 21m 17s
In this lesson, Wojtek introduces a foundational workflow for procedural shader variation in Houdini. By combining simple nodes such as random, ramp, mix, and switch with custom geometry attributes, he shows how flexible, highly variable looks can be created using straightforward controls. Rather than presenting a step-by-step scene recreation, the lesson focuses on core building blocks that can be adapted to a wide range of use cases, from fully procedural shaders to enhancing existing texture-based assets with added variation.
Duration: 36m 51s
Wojtek demonstrates how realistic displacement can be added to shaders in Houdini without relying on traditional UV mapping or manual sculpting. By combining triplanar projection, careful value management, and attribute-based randomization, he shows how to build a flexible, reusable shader system that incorporates believable surface texture and variation across stone blocks. The shader network scales effectively to entire environments while maintaining individual variation and artistic control, making it well suited for large-scale production work where efficiency and consistency are essential.
Duration: 43m 51s
In this lesson, Wojtek discusses how to independently control different aspects of color variation, including the nuanced differences between similar adjustments such as gamma and exposure. He also demonstrates how geometry attributes can be combined with color randomization to create surfaces that feel naturally weathered and varied. The lesson emphasizes maintaining organization while building complexity, ensuring each effect remains subtle on its own while collectively producing dynamic, believable surfaces.
Duration: 45m 37s
Wojtek explores how noise nodes function as a powerful foundation for creating realistic, organic texture in look development. He shows how combining different noise types with ramp controls, layering techniques, and displacement integration allows for rich variation and believable surface detail. The lesson emphasizes experimentation through techniques such as chaining multiple noise nodes, using vector offsets, adjusting octaves and amplitude, and manipulating results with ramp and range nodes. These approaches help break up overly CG patterns and create surfaces that feel natural and grounded.
Duration: 30m 6s
Continuing the exploration of texture variation within shader networks, Wojtek shows how geometry attributes such as cavities can be used to drive masks that form a strong foundation for surface detail. He demonstrates how incorporating photoreal texture elements and allowing for unexpected results helps break away from overly clean or predictable looks. The lesson also emphasizes observing nature, collecting personal reference, and layering real-world imperfections into procedural workflows to create more convincing, organic surfaces.
Duration: 28m 19s
Wojtek demonstrates how geometry-based masking can be used to further enhance shader networks. By leveraging automatically-generated attributes such as position and displacement, variable surfaces can be built that respond naturally to the underlying geometry. The lesson emphasizes keeping node networks flexible and well organized so effects can be stacked, adjusted, and reused across different shading properties, supporting realistic and art-directable materials with minimal manual effort.
Duration: 32m 56s
This final look at texture variation showcases advanced shader techniques for creating realistic surface weathering by combining multiple masking methods and carefully considering real-world physical behavior. The lesson focuses on breaking up uniform patterns through layered variation, strategic masking driven by surface topology, and controlled randomization across multiple objects. Together, these techniques transform simple procedural effects into convincing, naturally-occurring surface detail.
Duration: 17m 9s
In this lesson, Wojtek demonstrates a professional production approach that prioritizes flexibility, efficiency, and artistic control. By investing time early to build a robust ID-based override system, complex, naturalistic variation can be created across many scene elements while maintaining a single, manageable shader network. The lesson emphasizes that realistic materials emerge through patient, incremental layering of subtle effects, supported by ongoing refinement as the overall image comes together.
Duration: 47m 44s
Wojtek talks about roughness as a critical but sensitive material property requiring careful, subtle adjustments. By building roughness variation independently from other texture maps and using procedural masks strategically, he explains how artists can create natural-looking surfaces with proper highlight and shadow behavior. Wojtek’s approach to using ramps and switches allows for flexible, procedural control that works across multiple objects while still permitting overrides for specific elements.
Duration: 12m 34s
In this lesson, Wojtek transitions to ZBrush to demonstrate his pipeline for exporting accurate, high-fidelity displacement maps to Houdini. By establishing correct export settings upfront and combining UDIM workflows with triplanar projection, detailed results can be maintained while efficiently managing heavy or complex assets. Wojtek’s approach preserves artistic control by supporting both automated texture application and hand-painted customization where needed for hero assets.
Duration: 20m 59s
In this lesson, Wojtek explains camera projection as a powerful technique for efficiently creating hand-painted textures and masks that integrate with a shader network. By painting masks in Photoshop to drive color corrections and effects in Houdini, intensity and blending can be adjusted while introducing natural detail that is difficult to achieve through purely procedural texturing. This approach is particularly effective for hero assets such as cliffs, where photographed rock detail, wet streaks, and directional staining help create believable, artistically controlled surfaces.
Duration: 31m 5s
In this final lesson, Wojtek emphasizes the power of procedural shading techniques for building efficient, scalable 3D environments. By leveraging position data, careful attribute management, and gradient-based color control, sophisticated visual results are achieved without making scenes unnecessarily heavy, an important consideration for modern GPU rendering. These methods support immediate production needs while also establishing reusable assets that contribute to a robust library for future projects.
Duration: 17m 25s
Primary tools
For this workshop you’ll need:
Project Files
By downloading these workshop files, you'll get access to Wojtek Piwowarczyk's comprehensive environment look-dev project, containing all the required assets for you to open and learn from the scene. Files include:
- 3D models (.obj, .abc) – Detailed architectural assets, including stone walls, columns, and cliffs, which you can use in many 3D applications
- ZBrush sculpts (.ztl) - Original high-resolution ZBrush files, which you can modify, customize, and export maps from
- Houdini project (.hiplc) - The complete scene file from the workshop showing the procedural setup of materials and other look-dev elements
- Textures & materials (.exr and .tx) - High-quality textures with cache files for optimized rendering performance
Skills Covered
Who’s this Workshop for?
This workshop is customized for intermediate to advanced Houdini artists, Environment Technical Directors, and look development specialists working in film, animation, and game cinematics. Artists with basic Houdini knowledge who want to master procedural shading techniques will also find this workshop invaluable.
Surfacing artists, technical artists, and VFX generalists looking to expand their procedural workflow skills will find this workshop valuable to their workflow. The universal shading principles taught provide artists with transferable knowledge that enhances career prospects and technical capabilities across multiple different software platforms and studio pipelines.
Learning Outcomes
After artists have completed this workshop, they will have developed a foundation in procedural shading techniques and gained confidence to create any surface type for production work.
Key skills include:
- How to create photorealistic procedural shaders using Arnold within a Houdini workflow.
- How to extract geometric information from source models to drive shader development effectively.
- How to leverage Houdini's procedural nature for maximum efficiency in look development processes.
- How to build robust, reusable shading networks that transfer across multiple projects.
- How to integrate ZBrush and Photoshop elements into procedural shading production pipelines.
- How to develop universal shading techniques that remain relevant across different software platforms.








