Metis — 数字媒体艺术知识库原型 · 示例数据
演示角色
课程讲义课程资料示例

课程讲义:TouchDesigner 实时视觉入门

P-1

本讲介绍 TouchDesigner。上一讲把交互装置拆成“感知—计算—反馈”三环,TouchDesigner 主要负责后两环:接收传感器和摄像头的数据,实时生成画面,再把画面送到投影机或屏幕。本讲先讲它的基本概念和算子家族,再走一遍“输入—处理—生成—输出”的典型流程,最后讨论和音乐联动、与投影映射的衔接,以及许可证。

P-2

TouchDesigner 是加拿大多伦多的 Derivative 公司开发的节点式实时开发环境,常用于实时视觉、交互装置、舞台演出和投影。Derivative 由 Greg Hermanovic 等三人于 2000 年创立。Hermanovic 也参与创办了 Houdini 的开发商 Side Effects,TouchDesigner 最初就以当时的 Houdini 4.1 为起点,第一代产品在 2002 至 2007 年间发布。

P-3

TouchDesigner 不要求一行一行地写代码,而是把一个个功能块——称为算子(operator)——用连线接起来,数据沿着连线流动。每个算子都能直接显示自己当前的输出,改一个参数,马上就能看到画面的变化,这对习惯视觉思考的学生很友好。算子组成的网络可以层层嵌套,复杂的项目也能整理清楚。需要写逻辑时,TouchDesigner 使用 Python 作为脚本语言。

P-4

算子按处理的数据类型分成几个家族,名字都是缩写。TOP(Texture Operators,纹理算子)处理二维图像,比如摄像头画面、视频、合成和滤镜。CHOP(Channel Operators,通道算子)处理随时间变化的数值信号,比如运动、音频、动画曲线和控制信号。SOP(Surface Operators,表面算子)处理三维的点、多边形等几何体。

P-5

DAT(Data Operators,数据算子)处理文本、表格、脚本等数据。MAT(Material Operators,材质算子)是三维渲染用的材质和着色器。COMP(Components,组件)是容器,可以装下别的算子网络,三维物体、摄像机、灯光和界面面板都是 COMP。2025 年的正式版新增 POP(Point Operators,点算子),在 GPU 上处理点、粒子和点云;官方文档已把 SOP 称为旧的三维几何家族。

P-6

初学时最需要理解的是家族之间的转换。传感器的数值在 CHOP 里,画面在 TOP 里,交互就发生在两者相遇的地方:CHOP 的数值可以直接驱动 TOP 的参数;反过来,TOP to CHOP 能把图像像素转换成 CHOP 通道,例如把摄像头画面里某个区域的亮度变成一个数值;CHOP to TOP 则把通道数据放进一张图像。读一个项目,先看数据在哪几个家族之间流动。

P-7

典型流程的第一步是输入。普通摄像头用 Video Device In TOP 读取;Azure Kinect 用 Kinect Azure TOP 取得彩色、深度、红外和点云图像,再用 Kinect Azure CHOP 取得骨骼位置;Arduino 发来的串口数据用 Serial DAT 接收;手机网页或其他软件发来的 OSC 消息用 OSC In CHOP 接收。这一步的原则是先看清原始数据:读数范围多大、抖动多厉害、多久更新一次。

P-8

第二步是处理,把“脏”的输入变成稳定、范围明确的控制信号。图像方面,常见的操作有模糊降噪、阈值分离、把当前画面和空场参考画面相减找出人的位置;数值方面,用 Filter CHOP 或 Lag CHOP 平滑抖动,用 Math CHOP 把读数换算到需要的范围,比如把 0.5 米到 3 米的距离换算成 1 到 0 的强度。处理做得好,后面的画面才不会乱跳。

P-9

第三步是生成图像。Noise TOP 生成噪声纹理,Feedback TOP 把上一帧叠回下一帧,形成拖尾和流动;粒子和三维几何可以用 Render TOP 渲染成图像。把处理好的控制信号接到这些算子的参数上,画面就开始“回应”观众:人越近,噪声越乱,颜色越亮。这一步是作品的语言所在,同样的输入可以对应性格完全不同的画面。

P-10

第四步是输出。编辑时在 Designer 模式下工作,展出时切换到 Perform 模式:它只渲染一个指定的 Window COMP,隐藏编辑界面,节省内存。官方文档建议最终输出使用一个大的 Perform 窗口,而不是同时开多个独立窗口。接多台投影机时,就让这个窗口铺满几台投影机组成的扩展桌面。

P-11

投到平整的墙面时,四角校正通常就够了;投到不规则的物体、折面或建筑立面上,就需要投影映射。TouchDesigner 自带两个常用工具。Stoner 先做四角定位,再在网格上逐点调整位置和曲率,适合二维的拉伸和贴合。camSchnappr 需要物体的三维模型:在模型上标出至少六个点,对到实物上的对应位置,软件据此推算投影机的位置和镜头参数,让渲染出的模型准确贴到实物上。

P-12

和音乐联动是实时视觉最常见的用法。声音可以从声卡实时输入(Audio Device In CHOP),也可以读取音频文件(Audio File In CHOP);接上 Audio Spectrum CHOP 计算频谱,取出低频能量驱动画面缩放,高频驱动闪烁。也可以接收音乐软件发出的 MIDI 或 OSC 消息,按节拍和段落切换画面。现场 VJ 的基本工作流程就建立在这几步上。

P-13

当节点组合跑不动,或者做不出某种逐像素的效果时,可以自己写着色器。GLSL TOP 把一段着色器程序渲染成一张 TOP 图像,既能处理逐像素的效果,也能做更通用的并行计算;另有用来编写自定义材质的 MAT 算子。入门阶段不必急着写,先把节点用熟;但要知道这条路在那里,很多效果改写以后会快得多。

P-14

“实时”意味着每一帧都要在规定时间内算完:按每秒 60 帧计算,每帧只有约 16.7 毫秒。画面卡顿时,先检查分辨率和算子数量,降低中间环节的分辨率往往最有效;不需要每帧更新的部分可以降低更新频率。展出用的电脑最好专机专用,关闭系统自动更新和休眠,开机后自动打开项目并进入 Perform 模式。

P-15

TouchDesigner 有非商业版、教育版、商业版和专业版四种许可证。非商业版免费,只能用于个人、教育或评估性质的非付费用途,不能用于任何有报酬的工作;输出分辨率限制在 1280×1280 以内,H.264/H.265 实时导出等功能也不可用。教育版面向学生和教育机构,需经 Derivative 审核,功能和商业版相同,但同样只能用于非商业用途。展出前要按投影分辨率和用途确认许可证。

P-16

课堂练习:1. 用摄像头画面和空场参考画面相减,得到观众的大致位置,用它控制一个噪声或粒子画面,并在 Perform 模式下全屏输出。2. 用 Audio Spectrum CHOP 分析一段音乐,让低频控制画面缩放、高频控制亮度。3.(选做)用 Stoner 把画面投到教室里的一个纸盒或折面上,记录校准步骤和花费的时间。

需要登录

这是一份课程资料,仅对校内师生开放。

学号登录