Blender 视频特效:程序化扭曲与几何节点像素化

在本教程中,我们将探索如何使用 Blender 来处理和操纵现有视频素材,创造出类似 After Effects 或 Photoshop 中的视觉特效。我们将学习两种主要技术:首先,使用 Blender 的着色器节点和程序化纹理来扭曲视频画面;其次,利用几何节点,让视频内容驱动几何图形的生成和变化,实现一种独特的像素化或粒子化效果。最终,我们会将这两种效果叠加,打造出引人注目的动态视觉。
0:00
/0:07
本教程适合对 Blender 有一定基础,希望探索其在视频后期特效方面应用的读者。
通过本教程,你将学到:
- 如何在 Blender 中将视频作为纹理应用到平面上。
- 使用沃罗诺伊纹理 (Voronoi Texture) 和噪点纹理 (Noise Texture) 来程序化地扭曲视频向量。
- 通过混合颜色 (Mix Color) 节点控制纹理效果的强度。
- 利用几何节点 (Geometry Nodes) 根据视频的亮度信息实例化和缩放物体。
- 在几何节点中正确映射视频纹理坐标。
- 使用 Blender 的合成器 (Compositor) 添加辉光 (Glare) 等后期效果。
- 组合不同的特效层,创造复杂的视觉成果。
准备工作
- Blender: 建议使用 Blender 4.0 或更高版本 (教程中使用 Blender 4.0.1)。
- Node Wrangler 插件: 这是一个非常方便的节点操作插件,Blender 自带,请确保在
编辑 (Edit) > 偏好设置 (Preferences) > 插件 (Add-ons)
中已启用它。 - 视频素材: 准备一段你想要处理的视频。教程中演示的视频有不同的帧长度,你需要知道你所使用视频的总帧数。
步骤一:创建基础视频扭曲效果(着色器节点)
我们将首先创建一个平面,并将视频应用为该平面的材质,然后使用程序化纹理来扭曲视频的显示。
- 打开 Blender,在3D视图中,按
Shift + A
,选择网格 (Mesh) > 平面 (Plane)
来创建一个新的平面。 - 选中该平面。通常视频是16:9的宽高比。在右侧的属性面板中找到
物体属性 (Object Properties)
(橙色方块图标),展开变换 (Transform)
面板。将缩放 (Scale)
的X值设为16
,Y值设为9
。- 如果你想从顶部正交视图查看,可以按数字键盘的
7
。 - 如果你的视频是其他宽高比(如方形1:1),则相应调整缩放值。
- 如果你想从顶部正交视图查看,可以按数字键盘的
- 切换到顶部菜单栏的 着色 (Shading) 工作区。
- 确保平面仍处于选中状态。在底部的着色器节点编辑器中,点击 + 新建 (New) 按钮,为平面创建一个新材质。
- 你应该会看到一个 原理化BSDF (Principled BSDF) 节点连接到 材质输出 (Material Output) 节点。确保已启用 Node Wrangler 插件。选中 原理化BSDF 节点,然后按
Ctrl + T
。这会自动添加一个 图像纹理 (Image Texture) 节点、一个 映射 (Mapping) 节点和一个 纹理坐标 (Texture Coordinate) 节点。 - 在 图像纹理 节点上,点击 打开 (Open) 按钮,浏览并选择你的视频文件。
- 将 图像纹理 节点的 颜色 (Color) 输出直接连接到 材质输出 (Material Output) 节点的 表面 (Surface) 输入,从而绕过 原理化BSDF 节点。这样视频将作为无光照的发射材质显示。
- 配置视频播放:
- 在 图像纹理 节点上,找到视频文件名下方的设置。
- 勾选 循环 (Cyclic) 和 自动刷新 (Auto Refresh)。
- 将其中的 帧数 (Frames) 设置为你视频的总帧数。
- 在 Blender 主界面底部的时间轴编辑器中,将 结束 (End) 帧也设置为相同的帧数。
- 现在,当你在时间轴上播放动画时(按空格键),你应该能看到视频在平面上播放。
- 现在我们来添加扭曲效果。在 纹理坐标 (Texture Coordinate) 节点和 映射 (Mapping) 节点之间(即 矢量 (Vector) 连线上)添加程序化纹理:
- 按
Shift + A
,搜索并添加一个 沃罗诺伊纹理 (Voronoi Texture) 节点。 - 按
Shift + A
,搜索并添加一个 混合颜色 (Mix Color) 节点 (在 Blender 4.1+ 中为Mix Node
,类型设为Color
)。
- 按
- 连接节点以实现扭曲:
- 将 纹理坐标 (Texture Coordinate) 节点的 生成 (Generated) 输出连接到 混合颜色 (Mix Color) 节点的 A 输入口。
- 将 沃罗诺伊纹理 (Voronoi Texture) 节点的 颜色 (Color) 输出连接到 混合颜色 (Mix Color) 节点的 B 输入口。
- 将 混合颜色 (Mix Color) 节点的 结果 (Result) 输出连接到 映射 (Mapping) 节点的 矢量 (Vector) 输入口。
- 混合颜色 节点的 系数 (Factor) 控制扭曲的强度。值为
1.0
时,使用A输入,视频无扭曲。值越接近0.0
,则B输入(沃罗诺伊纹理)对向量的影响越大,扭曲越明显。 - 在 沃罗诺伊纹理 节点中,你可以尝试以下设置:
- 将维度从
3D
改为4D
。这样会出现一个 W 输入值,你可以通过给 W 值设置关键帧(鼠标悬停在W值上按I
键)来制作扭曲的动画效果。 - 尝试将特征输出从
F1
改为 平滑F1 (Smooth F1)。然后调整下方的 平滑度 (Smoothness) 值(例如0.078
到0.085
之间),可以获得更柔和、更液态的扭曲边缘。 - 调整 比例 (Scale) 值可以改变扭曲图案的大小。
- 将维度从
- 你也可以使用 映射 (Mapping) 节点中的 位置 (Location) 值来平移扭曲效果。
- (可选) 你也可以尝试使用 噪点纹理 (Noise Texture) 替换 沃罗诺伊纹理 来获得不同的扭曲效果,例如波浪状的扭曲。同样可以将其设置为
4D
并动画化W
值。可以添加一个 色彩渐变 (ColorRamp) 节点在噪点纹理和混合颜色节点之间,以调整噪点的对比度。 - 完成此步骤后,你可以设置摄像机正对平面 (选中摄像机,按
Alt + G
和Alt + R
清除变换,然后手动调整或使用Ctrl + Alt + Numpad 0
对齐到当前视图),然后将此效果渲染为视频序列(如 PNG 序列或 MP4 文件)。这个渲染出的视频我们称之为 “扭曲视频”,将在后续步骤中作为背景。

步骤二:创建视频驱动的几何粒子效果(几何节点)
接下来,我们将使用视频的亮度信息来控制几何实例(如小加号)的缩放,形成一种视频内容被像素点重现的效果。
- 返回 布局 (Layout) 工作区。你可以隐藏或删除上一步创建的平面和摄像机。
- 创建一个新的平面:按
Shift + A
,选择网格 (Mesh) > 平面 (Plane)
。在属性检查器 (按N
键打开侧边栏) 的条目 (Item)
标签下,将其命名为video_base
(或者你选择的其他名字,用于承载背景视频)。 - 再创建一个新的平面:按
Shift + A
,选择网格 (Mesh) > 平面 (Plane)
。将其命名为geo
。将这个geo
平面在Z轴上稍微向上移动一点点(例如0.01m
),使其位于video_base
平面的正上方。 - 为
video_base
平面应用与步骤一类似的材质设置,使其播放原始的、未扭曲的视频(或你在步骤一中渲染出来的“扭曲视频”,取决于你最终想要的效果)。确保视频纹理的帧数、循环和自动刷新设置正确。 - 创建用于实例化的物体 (教程中是一个加号 "+"):
- 按
Shift + A
,选择网格 (Mesh) > 平面 (Plane)
。将其命名为plus_sign
。 - 进入编辑模式 (按
Tab
键)。确保处于面选择模式。 - 选择并删除 (按
X
>仅面 (Only Faces)
) 中心四个面形成一个加号形状,或者按你的喜好创建其他简单形状。 - 返回物体模式 (按
Tab
键)。 - 为这个
plus_sign
物体创建一个新材质。将材质类型改为 自发光 (Emission)。选择一个显眼的颜色(教程中使用亮红色/橙色,例如#FF2800
),并将 强度 (Strength) 设为一个较高的值,如5
或更高,以便后续辉光效果明显。
- 按
- 选中
geo
平面,切换到顶部菜单栏的 几何节点 (Geometry Nodes) 工作区。点击 + 新建 (New) 创建一个新的几何节点树。 - 删除默认的 组输入 (Group Input) 节点。
- 添加节点并连接:
- 按
Shift + A
,添加网格 (Mesh) > 基本体 (Primitives) > 网格栅格 (Grid)
节点。将其 尺寸X (Size X) 设为1.6m
(或16,取决于之后缩放),尺寸Y (Size Y) 设为0.9m
(或9)。X轴顶点数 (Vertices X) 设为16
,Y轴顶点数 (Vertices Y) 设为9
(或者根据你的视频宽高比调整,保持比例一致)。 - 添加
网格 (Mesh) > 操作 (Operations) > 細分网格 (Subdivide Mesh)
节点。将其连接在网格栅格 (Grid)
之后。将 层级 (Level) 设置为3
或4
(层级越高,粒子越密集,但性能开销越大)。 - 添加
实例 (Instances) > 在点上实例化 (Instance on Points)
节点。将細分网格 (Subdivide Mesh)
的输出连接到此节点的 点 (Points) 输入。 - 从场景集合中将我们之前创建的
plus_sign
物体拖拽到几何节点编辑器中,这会创建一个 物体信息 (Object Info) 节点。勾选 作为实例 (As Instance)。将其 几何数据 (Geometry) 输出连接到在点上实例化 (Instance on Points)
节点的 实例 (Instance) 输入。
- 按
- 现在我们需要让视频驱动实例的缩放。为此,我们需要正确地将视频纹理映射到栅格的顶点上:
- 添加
输入 (Input) > 位置 (Position)
节点。 - 添加
几何体 (Geometry) > 读取 (Read) > 边界框 (Bounding Box)
节点。将网格栅格 (Grid)
节点的 网格 (Mesh) 输出连接到边界框 (Bounding Box)
节点的 几何数据 (Geometry) 输入。 - 添加两个
矢量 (Vector) > 矢量数学 (Vector Math)
节点。- 第一个设置为 相减 (Subtract)。将
位置 (Position)
节点的输出连接到其第一个 矢量 (Vector) 输入,将边界框 (Bounding Box)
节点的 最小 (Min) 输出连接到其第二个 矢量 (Vector) 输入。 - 第二个也设置为 相减 (Subtract)。将
边界框 (Bounding Box)
节点的 最大 (Max) 输出连接到其第一个 矢量 (Vector) 输入,将边界框 (Bounding Box)
节点的 最小 (Min) 输出连接到其第二个 矢量 (Vector) 输入。
- 第一个设置为 相减 (Subtract)。将
- 添加一个新的
矢量数学 (Vector Math)
节点,设置为 相除 (Divide)。将第一个 相减 (Subtract) 节点的输出连接到其第一个 矢量 (Vector) 输入。将第二个 相减 (Subtract) 节点的输出(即Max - Min的结果)连接到其第二个 矢量 (Vector) 输入。 - 添加
矢量 (Vector) > 矢量旋转 (Vector Rotate)
节点。将上一步 相除 (Divide) 节点的输出连接到此节点的 矢量 (Vector) 输入。确保类型为 轴-角度 (Axis Angle),将 角度 (Angle) 设置为180
度 (或3.14159
弧度)。轴向 (Axis) 应该默认为Z轴(0,0,1)
,如果不是,请设置。 - 添加
纹理 (Texture) > 图像纹理 (Image Texture)
节点。点击 打开 (Open) 并选择你希望驱动粒子效果的视频文件(教程中使用的是450帧的视频)。将其 矢量 (Vector) 输入连接到上一步矢量旋转 (Vector Rotate)
节点的输出。- 同样,在此 图像纹理 节点上设置正确的 帧数 (Frames),并勾选 循环 (Cyclic) 和 自动刷新 (Auto Refresh)。
- 添加
输入 (Input) > 场景时间 (Scene Time)
节点。将其 帧 (Frame) 输出连接到 图像纹理 节点的 帧 (Frame) 输入。 - 添加
工具 (Utilities) > 映射范围 (Map Range)
节点。将其类型改为 浮点数 (Float) (虽然视频的颜色是矢量,但通常亮度信息会被正确转换)。将 图像纹理 节点的 颜色 (Color) 输出连接到映射范围 (Map Range)
节点的 值 (Value) 输入。将映射范围 (Map Range)
节点的 结果 (Result) 输出连接到在点上实例化 (Instance on Points)
节点的 缩放 (Scale) 输入。
- 添加
- 调整
映射范围 (Map Range)
节点的参数来控制视频亮度如何影响实例大小:- From Min: 视频中最暗部分的亮度值,通常为
0
。 - From Max: 视频中最亮部分的亮度值,通常为
1
。 - To Min: 对应最暗像素的实例缩放值 (例如
0
或一个很小的值如0.01
)。 - To Max: 对应最亮像素的实例缩放值 (例如
0.1
到0.2
)。 - 教程中使用的参考值:
From Min: 0.13
,From Max: 1.0
,To Min: 0.0
,To Max: 0.17
。你可以根据视频内容和期望效果调整这些值。 - 在
在点上实例化 (Instance on Points)
节点和最终的组输出 (Group Output)
节点之间添加几何体 (Geometry) > 操作 (Operations) > 删除几何体 (Delete Geometry)
节点。 - 将其模式设置为 实例 (Instance)。
- 添加
工具 (Utilities) > 随机值 (Random Value)
节点。将其数据类型改为 布尔型 (Boolean)。 - 将
随机值 (Random Value)
节点的 随机 (Random) 输出连接到删除几何体 (Delete Geometry)
节点的 选择 (Selection) 输入。 - 调整
随机值 (Random Value)
节点的 概率 (Probability) 值(例如0.5
到0.8
),这个值越高,删除的实例越多。
- From Min: 视频中最暗部分的亮度值,通常为
(可选) 如果希望粒子效果更稀疏,可以随机删除一些实例:节点树概览 (几何节点粒子):

步骤三:添加辉光效果(合成器)
- 渲染一帧当前几何节点的效果:在3D视图中,确保摄像机已设置好,然后点击顶部菜单
渲染 (Render) > 渲染图像 (Render Image)
(或按F12
)。 - 渲染完成后,关闭渲染窗口,切换到顶部菜单栏的 合成 (Compositing) 工作区。
- 勾选顶部的 使用节点 (Use Nodes)。你会看到一个 渲染层 (Render Layers) 节点和一个 合成 (Composite) 节点。
- 为了能在背景中预览效果,按
Shift + A
,搜索并添加一个 输出 (Output) > 查看器 (Viewer) 节点。将 渲染层 (Render Layers) 节点的 图像 (Image) 输出同时连接到 合成 (Composite) 和 查看器 (Viewer) 节点的 图像 (Image) 输入。 - 在 渲染层 (Render Layers) 和输出节点之间添加辉光效果:
- 按
Shift + A
,搜索并添加滤镜 (Filter) > 辉光 (Glare)
节点。 - 将 辉光 (Glare) 节点的类型从默认的
条纹 (Streaks)
改为 泛光 (Bloom)。 - 调整 阈值 (Threshold), 大小 (Size) 等参数,直到获得满意的基础辉光。
- (可选) 你可以再添加一个 辉光 (Glare) 节点,保持其类型为 条纹 (Streaks),并调整 色彩混合 (Color Modulation), 混合 (Mix), 阈值 (Threshold), 条纹数量 (Streaks), 角度偏移 (Angle Offset) 和 渐变 (Fade) 等参数,来添加一些发散的条纹光效。
- 按
- 如果你在几何节点预览时(视口右上角渲染选项),将合成器预览设置为 始终 (Always),你应该能在3D视口中实时看到辉光效果

步骤四:组合两种效果
现在我们将步骤一的视频扭曲效果作为背景,步骤二和三的几何粒子加辉光效果叠加在前景。
- 确保你的场景中有三个主要物体:
video_base
平面:应用了步骤一中创建的视频扭曲材质(或普通视频材质)。geo
平面:应用了步骤二中创建的几何节点修改器,其实例由视频驱动。plus_sign
物体:被geo
平面上的几何节点实例化,并带有自发光材质。
- 将
geo
平面放置在video_base
平面的正前方(Z轴上略高一点),plus_sign
物体可以放在场景中的任何位置,因为它只是一个被引用的源物体。 - 调整
geo
平面上的几何节点设置(如映射范围
的To Min
和To Max
值,删除几何体
的概率等)和plus_sign
物体的自发光材质强度,以及合成器中的辉光设置,直到前景的粒子效果和背景视频完美融合。 - 确保两个视频(背景扭曲视频和驱动几何节点的视频)的帧数、起始帧等时间设置是同步的。如果驱动几何节点的视频与背景视频是同一个,则 图像纹理 节点中的视频文件路径和帧设置应保持一致。
最终效果应该是扭曲的背景视频上,叠加着由视频内容驱动、并带有辉光效果的几何粒子。
总结
通过本教程,我们学习了如何在 Blender 中运用着色器节点和几何节点对视频素材进行富有创意的处理。我们实现了视频的程序化扭曲,以及一种基于视频内容的几何粒子生成和辉光效果。这些技术为视频后期制作和动态图形设计提供了强大的可能性。
你可以进一步尝试:
- 使用不同的程序化纹理组合来创造更多样的扭曲效果。
- 替换几何节点中的实例化对象为更复杂的模型。
- 探索更多几何节点的功能来控制实例的旋转、颜色等属性。
- 在合成器中尝试更多的滤镜和色彩校正技术。
希望本教程能为你打开在 Blender 中进行视频特效创作的新大门!