为什么你调的雾总是“脏、灰、假”?
在Blender里做体积光,90%的新人卡在同一个地方:把体积散射(Volume Scatter)当成一个“浓度滑杆”来用。密度拉高,画面变灰;密度拉低,光又出不来。于是反复在0.01和0.1之间试错,最后得到一个“能看但不好看”的结果。问题不在参数,在于你从未理解体积散射的物理模型——它本质是光线在介质中的单次/多次散射概率事件,密度只决定“撞上的概率”,而相位函数(Phase Function)决定“撞上之后往哪飞”,各向异性(Anisotropy)决定“前向散射还是后向散射”。这三者共同塑造了丁达尔光束的形态、软硬和层次。本文以能力层级为轴,为你规划一条从入门到大师的进阶路线,每一层都讲清楚:要掌握什么、达到什么标准、以及为什么这个阶段必须跨过去。

入门层:建立正确的物理直觉(1-2周)
入门阶段的目标不是做出炫酷的图,而是建立“光-介质-相机”三者关系的物理直觉。很多教程一上来就教你连Volume Scatter节点,这是本末倒置。你应该先回答一个问题:为什么真实世界的雾在逆光时发白、顺光时发灰?
必须掌握的核心概念
- 体积散射(Volume Scatter):光子与介质粒子碰撞后改变传播方向的现象。在Cycles中,它由密度(Density)、各向异性(Anisotropy)和颜色(Color)三个参数控制。
- 各向异性(Anisotropy, g值):范围-1到1。g>0表示前向散射为主(光继续沿原方向传播,光束边缘锐利);g<0表示后向散射为主(光往回弹,雾更“厚”);g=0为各向同性(瑞利散射的简化)。这是控制光束“软硬”的第一杠杆,比密度重要得多。
- 吸收(Volume Absorption):与散射配对使用。纯散射会让画面发灰,加入吸收才能让暗部沉下去、亮部跳出来。
达标标准
你能在不看教程的情况下,用一张Area Light + 一个Cube体积,调出光束边缘清晰、背景暗部不灰的丁达尔效果,并解释清楚为什么把Anisotropy从0调到0.6,光束会变“窄”变“亮”。
技巧提示:入门阶段不要碰Principled Volume节点,它把散射、吸收、发光打包在一起,会掩盖你对单一参数的理解。先用Volume Scatter + Volume Absorption两个独立节点,逼自己理解每个滑杆的物理意义。
推荐资源
Blender官方手册的“Volume Rendering”章节(读英文原版,中文翻译有滞后);Cycles渲染器文档中关于Henyey-Greenstein相位函数的数学说明——不需要推导,但要看懂g值的几何含义。
进阶层:掌控相位函数与光照布局(1-2个月)
跨过入门层后,你会发现一个残酷事实:同样的体积参数,换一个灯光位置,效果天差地别。这是因为体积散射的视觉结果高度依赖光源、介质、相机三者的几何关系。进阶层要解决的是“可控性”问题。

必须掌握的核心技术
- Henyey-Greenstein相位函数的实战映射:g=0.3~0.5适合大气雾(前向散射为主,光束柔和);g=0.7~0.9适合舞台烟雾(强前向散射,光束硬朗);g=-0.2~-0.4适合水下或浓尘(后向散射,环境光被“推回”)。不要迷信默认值0,那是物理上的各向同性,视觉上最平庸。
- 光源类型与体积的匹配:Spot Light配合高g值能做出锐利的光锥;Area Light配合低g值能做出柔和的体积辉光;Sun Light配合大尺度体积(如整个场景的雾)时,必须开启Multiple Importance Sampling(MIS),否则噪点爆炸。
- 密度与尺度的关系:体积的“视觉浓度”= 密度 × 光路长度。把Cube放大一倍,密度要减半才能维持同样的视觉浓度。这是新人最容易忽略的尺度陷阱。
参数对比表:不同场景的推荐起点
| 场景类型 | 密度 | 各向异性g | 颜色 | 光源建议 |
|---|---|---|---|---|
| 室内丁达尔光束 | 0.05~0.1 | 0.4~0.6 | 纯白 | Spot Light,角度15°~30° |
| 室外大气雾 | 0.005~0.02 | 0.2~0.4 | 微蓝(0.9,0.95,1.0) | Sun Light + 天空纹理 |
| 舞台烟雾 | 0.1~0.3 | 0.7~0.85 | 纯白 | 多盏Spot Light交叉 |
| 水下浑浊 | 0.2~0.5 | -0.2~-0.4 | 青绿(0.6,0.9,0.85) | 面光从水面往下 |
达标标准
你能针对一个给定场景,在5分钟内选定密度、g值和光源类型的组合,并预判渲染结果的软硬程度。你能解释为什么“把Spot Light换成Area Light后,光束边缘变模糊”的物理原因(面光源的采样立体角更大,散射方向更分散)。
进阶陷阱:很多人用高密度+低g值去“堆”体积感,结果画面发灰、对比度丢失。正确做法是低密度+高g值+强方向光,让散射集中在光路附近,背景保持干净。记住:体积光的美感来自“暗部够暗”,而不是“亮部够亮”。
高手层:用节点树程序化控制体积(3-6个月)
到了这一层,你不再满足于“一个均匀的Cube”。真实世界的雾是非均匀的:近地面浓、高处稀;有风时呈湍流状;有遮挡时形成阴影体积。高手要掌握的是用程序化纹理驱动体积密度,并且控制性能开销。
必须掌握的核心技术
- Noise Texture驱动密度:将Noise Texture的Fac输出连接到Volume Scatter的Density。关键技巧是用ColorRamp压缩对比度,因为Noise的默认输出接近高斯分布,直接连密度会导致大部分区域灰蒙蒙。ColorRamp的黑白点分别设在0.3和0.7,能把噪声“拉开”成清晰的浓淡分区。
- 体积边界与Mesh to Volume:对于复杂形状的烟雾(如从角色口中吐出的烟),用Mesh to Volume修改器将网格转为体积,再叠加Noise扰动。这比在Cube里硬调密度高效得多。
- 性能优化三原则:①体积步进(Volume Step Rate)在预览时设为1~2,最终渲染再降到0.1~0.5;②开启Light Tree(Cycles 4.0+)让体积采样更智能;③对静态体积使用体积缓存(Volume Cache),避免每帧重算。
实战代码片段:程序化雾密度节点树
# 伪节点树描述(对应Blender节点连接)
# Texture Coordinate (Object) → Mapping (Scale=0.5) → Noise Texture (Scale=3, Detail=8)
# → ColorRamp (Pos1=0.3→黑, Pos2=0.7→白) → Math (Multiply, 值=0.1) → Volume Scatter.Density
# 同时将Noise的Fac → Volume Absorption.Density (Multiply 0.02)
# 目的:亮区散射强、暗区吸收强,形成自然的浓淡过渡
达标标准
你能在不增加渲染时间超过30%的前提下,为场景添加具有空间变化的体积雾,并且雾的浓淡分布符合场景的叙事逻辑(如门口浓、室内稀)。你能用Volume Absorption配合Noise制造“脏雾”效果,而不是全局发灰。
高手判断:如果你还在用“复制多个Cube叠密度”来做非均匀雾,说明你还没跨入高手层。程序化纹理是这一层的分水岭——它让你从“摆参数”变成“设计分布”。
大师层:物理正确的多重散射与渲染策略(6个月以上)
大师与高手的区别在于:高手能做出好看的效果,大师能解释为什么好看,并在极端条件下(如超浓烟雾、大尺度场景、动画序列)依然稳定可控。这一层触及Cycles体积渲染的底层机制。

必须掌握的底层机制
- 多重散射(Multiple Scattering)与单次散射的取舍:Cycles默认计算多次散射,但在高密度介质中,多次散射会消耗大量采样且收敛慢。大师会根据场景选择:对于光学厚度(Optical Depth)大于3的浓雾,开启“Single Scattering Only”并配合降噪器,往往比全多重散射更快且视觉差异极小。光学厚度 = 密度 × 光路长度,这是判断是否需要简化散射的硬指标。
- 相位函数与MIS的交互:当场景中同时存在Sun Light和Area Light时,体积散射的采样策略需要MIS来平衡。大师会手动调整Light Sampling Threshold,避免体积采样把样本浪费在贡献极小的光源上。
- 色彩管理对体积的影响:体积散射的颜色在Filmic/AgX视图变换下会被大幅压缩。大师会在体积颜色上做“预补偿”——例如想要暖色雾,体积颜色要设为比目标色更饱和的橙红,因为AgX会把它拉灰。
达标标准
你能为一个10秒动画的体积雾场景,在保证视觉质量的前提下,将单帧渲染时间控制在目标预算内,并能通过光学厚度估算、采样策略调整和缓存策略的组合达成。你能向别人解释清楚“为什么浓雾场景要降低体积步进率反而可能更慢”(步进率低意味着更多步进采样,计算量上升)。
大师心得:体积渲染的终极心法是“用几何换采样”。能用低密度大体积解决的问题,不要用高密度小体积硬堆;能用灯光形状控制的,不要用密度纹理硬调。每一次参数调整前,先问自己:这是物理问题还是采样问题?
你的进阶路线图总结
| 层级 | 核心能力 | 时间投入 | 标志性成果 |
|---|---|---|---|
| 入门 | 理解散射/吸收/各向异性 | 1-2周 | 独立调出干净丁达尔光束 |
| 进阶 | 相位函数与光照布局 | 1-2个月 | 5分钟内预判参数组合效果 |
| 高手 | 程序化密度与性能优化 | 3-6个月 | 非均匀雾+渲染时间可控 |
| 大师 | 多重散射策略与色彩管理 | 6个月+ | 动画序列稳定产出 |
这条路线图不是让你“学完再练”,而是每一层都要以项目为驱动:入门层做一张静帧,进阶层做三个不同场景的对比,高手层做一个带体积雾的产品动画,大师层做一个10秒的影视级镜头。没有项目压力,参数永远记不住。
关于火星人教育
如果你希望把这条路线图压缩成有导师带、有项目练、有反馈改的实战路径,火星人教育可以帮你。火星人教育创办24年来专注数字艺术与AIGC实战职业技能培训,开设课程涵盖AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训。北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学,夯实专业技能,助力就业与职业提升。体积光这类技术,看十篇教程不如在导师眼皮底下调错三次——这才是我们24年教学沉淀的价值。咨询电话:010-65918670。








评论(0)