GLSL for POPs in TouchDesigner: Lesson 0 (Introduction to GLSL for POPs)

In this first lesson of GLSL in POPs, we introduce how to write compute shaders for the new POP operator family in TouchDesigner. You’ll learn the fundamentals of how POPs represent data and working with attributes, the difference between GLSL TOPs and POPs, and how to create and manipulate attributes directly on the GPU. We’ll also walk through your first GLSL POP shader, where you’ll build a custom ID attribute and learn how to access attributes across multiple inputs while using texture samplers.

📌 Key Topics Covered:
✅ What POPs are and how they store data as attributes
✅ The most important default attributes (P, Color, N)
✅ Creating custom attributes in GLSL POPs
✅ Key differences between GLSL TOPs and GLSL POPs
✅ How uniforms are handled in POPs (including texture samplers and TOPs)
✅ Using built-in functions TDIndex() and TDNumElements()
✅ Writing your first GLSL POP to generate a unique ID per element

🎨 Exercises & Challenges:
🛠️ Create an ID attribute for each element in a POP
🛠️ Use ID to generate a new attribute, LookupID, for texture sampling
🛠️ Modify the Color attribute of a POP using GLSL logic

Find me online:
🔹 Learn with me on Patreon: https://www.patreon.com/water__shed
🔹 Portfolio: https://www.lakeheckaman.com
🔹 Instagram: https://instagram.com/lake_heckaman

🔗 Further Learning:

TouchDesigner Docs: https://docs.derivative.ca

Mastering GLSL in TouchDesigner (Intro Course): https://www.patreon.com/collection/1268383

Writing GLSL POPs: https://derivative.ca/UserGuide/Experimental:Write_GLSL_POPs

Learning About POPs: https://touchdesigner.notion.site/Learning-About-POPs-3f7645a368a043f99cd143e2382b8ab0

00:00 – Start
01:07 – Course Overview
03:27 – Why use GLSL with POPs in TouchDesigner?
07:14 – Explaining Attributes in POPs
12:40 – Hello World
15:03 – Begin Live Examples in TouchDesigner
27:52 – Exercises

About The Author

You might be interested in