Course & assessment已有教学Particle Flow 学习页

SOURCE VIDEO · course43

Fireball · inner and outer layers

教学记录9.mp4 · 00:34:20

已补核心与外层制作顺序、关键参数的阶段变化及三个核心对比工程;逐帧核对和完整最终效果尚未完成。

下载本课原视频 MP4 · 78.4 MB ↓ · 全部原片下载

原片:教学记录9.mp4。请选择本机对应视频,文件只在浏览器播放,不会上传。

视频来自本机 [本机资料路径]

第43课:Sphere 核心与 Cylinder 外层条带

来源:教学记录9.mp4。已审阅分钟间隔画面与18个精确时点;不是逐帧核对完成。下面分清课堂中途设置、Class2 保存值和用于理解的对照实验。三个核心 MAX 文件都已保存并渲染,最终保存状态已重新打开。

1 · 00:00–05:30:先把 Noise 放到球上

  1. 延续上一课的 Sphere001,位置约 (0,0,150) cm。课堂 Radius = 58 cm,Segments = 32,Generate Mapping Coords 开启。
  2. 按 M 打开 Slate Material Editor,用 Noise #19 先看黑白图案。01:30 仍是 Object XYZ、Size 63.5;随后切换 Explicit Map Channel 1,Size 0.2。坐标系统变了,不能只照抄 Size。
  3. 04:30 是 Turbulence、Size 0.2、Low 0.2 / High 0.35,U Tiling 0.3;05:30 改到 Tiling (0.4,1.5,1),Levels 3。

作用:Noise 生成不规则黑白图案;Tiling 改变图案在球上的拉伸比例。后续作为 Cutout 时,黑色隐藏表面,白色保留表面。

2 · 07:30–09:30:让球的边缘逐渐透明

  1. 加入 Falloff #20:Perpendicular / Parallel,Viewing Direction (Camera Z-Axis),Front 白、Side 黑。
  2. 在 Mix Curve 调成画面所示的 S 形曲线。它改变正面到侧面的过渡速度。下载工程保留原生曲线;本轮脚本未能读出控制点,不能提供未经验证的逐点坐标。
  3. Noise #19 接 Composite #21 的 Layer 1;Falloff #20 接 Layer 2。原生保存值为 Normal / Darken,两个 Opacity 都是100。
  4. Composite #21 接材质 Cutout。此阶段用灰度变化得到柔和边缘。

3 · 约10:00–15:30:颜色与硬边分两路制作

Noise #22 → Gradient Ramp #23 (Mapped) → Physical Material / Emission Color
Noise #19 + Falloff #20 → Composite #21 → Gradient Ramp #24 (Mapped) → Cutout

Gradient Ramp #23 把黑白噪波变成橙、金、浅黄和淡蓝色。Gradient Ramp #24 则改变透明程度。12:30 的 #24 使用 Interpolation = Solid,白色 Flag Position = 50;Class2 保存版白色位置变为41.750843。不要把课堂中途50与保存版41.750843混写为同一步。

参数Class2 保存值用途
Noise #19Turbulence;Size 0.2;Levels 3;Low 0.1 / High 0.25;Tiling (0.4,1.5,1)透明图案
Noise #22Turbulence;Size 0.2;Levels 3;Low 0 / High 0.4;Tiling (0.4,1.5,1)颜色图案,与透明图案分开控制
Gradient Ramp #23Mapped;Source Map #22;Noise Amount 0;Flag Positions 0 / 69.023567 / 98.316498 / 100颜色分布;原生颜色保留在工程中
Gradient Ramp #24Mapped;Source Map #21;Noise Amount 0;Flags 0黑 / 41.750843白 / 100白截断灰度过渡,形成硬边
Physical Material #50Base 0;Reflectivity 0;Transparency 0;Emission 1;Kelvin 6500;Luminance 1500保存版核心的自发光

14:30 可见 Luminance 150;15:30 改为500。原生工程最终是1500、Radius 65。这里保留老师使用的 Physical Material,Renderer 是 Arnold;不把此材质误称为 Arnold Standard Surface。

三个可打开的对照工程

前两张只改变 Cutout 连接,Radius 58、Luminance 150 相同。第三张恢复保存版 Radius 65、Luminance 1500。柔边对比保留了后期的其他贴图参数,因此是解释节点的实验,不是早期课堂状态的完整复刻。镜头、黑背景、600×400输出为补充检查设置。

Composite 直接接 Cutout:柔边
Composite 直接接 Cutout:柔边 · 下载 MAX
经过 Ramp #24:硬边
经过 Ramp #24:硬边 · 下载 MAX
保存版:更大、更亮
保存版:更大、更亮 · 下载 MAX

怎么练:先打开01,再打开02,只观察球外缘。亮度没有改变,但透明边缘明显变窄、变硬;随后打开03看 Luminance 的影响。提高亮度不会自动生成周围的光晕,这组图还没有完成考核最终的 glow 效果。

4 · 17:30–25:30:制作包住核心的外层

  1. 创建 Cylinder002,放在核心周围;18:30 位置约 (0,−3.237,156.557) cm。
  2. 通过 Edit Poly 去掉两端盖面,得到开口筒状表面。添加 Taper:Amount 1、Curve 2.5、Primary Axis Z、Effect XY,Symmetry / Limits 关闭。
  3. 用 Gradient Ramp #25 做条带:Gradient Type Linear、Interpolation Linear,U Mirror On、U Tile Off、V Tiling 1。
  4. 20:30–21:30 U Tiling 3、W Angle 0;23:30 U Tiling 7、W Angle 20;25:30 再改为 U Tiling 5。W Angle 使条纹斜着绕过外层。
  5. Gradient Ramp #26 与 #25 接入 Composite #27。#26 原生 W Angle 90,Flags 0黑 / 68.013466中灰 / 100白。#25 原生 Flags 0黑 / 66.329971黑 / 96.632996白 / 100白。

模型决定外层的大轮廓;贴图决定哪些条带可见。原生 Composite #27 的两层模式索引为0、5,保留原连接;本页不凭索引猜测未核对的界面选项。

5 · 约27:30–34:20:两面配色并查看组合效果

教师给外层两面配不同颜色,30:30 可见 Physical Material #51 / #52 接入 Two Sided。后期 Luminance 50 与早期1500不同。原生颜色 Ramp #28 / #29 虽连接了 Source Map #25,但 Gradient Type 仍是 Linear;不能仅凭一根连接线把它写成 Mapped。

33:30 可见三个模型组合的斜视角渲染。下载保留三个模型的组合工程。该文件是已保存的 Class2 状态,包含后续修改器;外层所有中途模型仍未逐步复原。下方新增恢复原生场景与两个补设镜头的对照;课堂镜头、白色场景外观和完整动画尚未匹配。

本次实际渲染参数读回 · 上一课:Two Sided

参数画面与原片定位

01:30 查看参数画面教学记录9 at 90 seconds
04:30 查看参数画面教学记录9 at 270 seconds
05:30 查看参数画面教学记录9 at 330 seconds
07:30 查看参数画面教学记录9 at 450 seconds
09:30 查看参数画面教学记录9 at 570 seconds
12:30 查看参数画面教学记录9 at 750 seconds
13:30 查看参数画面教学记录9 at 810 seconds
14:30 查看参数画面教学记录9 at 870 seconds
15:30 查看参数画面教学记录9 at 930 seconds
17:30 查看参数画面教学记录9 at 1050 seconds
18:30 查看参数画面教学记录9 at 1110 seconds
20:30 查看参数画面教学记录9 at 1230 seconds
21:30 查看参数画面教学记录9 at 1290 seconds
23:30 查看参数画面教学记录9 at 1410 seconds
25:30 查看参数画面教学记录9 at 1530 seconds
28:30 查看参数画面教学记录9 at 1710 seconds
30:30 查看参数画面教学记录9 at 1830 seconds
33:30 查看参数画面教学记录9 at 2010 seconds

火球整合:恢复场景与比较 Camera

这两个文件恢复了 Class2 原生场景 Loft001 的 Renderable,保留 Cylinder001、Sphere001、Cylinder002 的模型与材质。两版都已保存、重新打开并实际渲染 Frame 32。Camera 是补设值,并非从教学视频准确读出的镜头。

操作顺序

  1. 先另存副本。选中 Loft001,打开 Object Properties,把 Renderable 打开,让场景参与渲染。
  2. 选择 Study_Camera_SUPPLEMENT,关闭 Auto Key 后设置 Position。修改镜头位置时同时调整朝向,使它看向火球中段。
  3. Front 版 Position = (−265, −1146.02, 153.072),看向 (−265, 0, 153.072);Oblique 版 Position = (55, −1100, 500),看向 (−265, 0, 150)。单位 cm,FOV 都是40°。
  4. 文件内是 Free Camera,没有独立 Target 对象;“看向”坐标用于计算朝向。Position 改变观察位置,FOV 改变视野范围,二者不能混为一个参数。
  5. 切到 Camera 视图,在 Frame 32 以800 × 400渲染;比较模型重叠、尾部长度和地面受光。
来源内容
原生工程保留Loft001 场景、三层火球模型、Shader 连接和保存值
本次补设两个 Camera 的位置、朝向、FOV 与对照输出尺寸
还未完成精确课堂构图、场景边界修正、噪点清理、最终 Glow、完整动画与考核验收

当前图片是检查图:两版背景都有明显噪点;Oblique 上沿还露出场景边界。不能把它们称为最终成片,也不能把恢复场景等同于匹配老师的灯光。

Front:平视对照
Front:平视对照 · 下载 MAX 工程
Oblique:升高并偏移镜头
Oblique:升高并偏移镜头 · 下载 MAX 工程

保存与重新打开的参数记录

03 · 背板高度与 Samples 修正对照

在02副本上,Loft001 的 Scale 从 (1,1,1) 改为 (1,1,2),背板最高点从400 cm变为800 cm。注意:这是整个场景对象沿 Z 缩放,曲面过渡也随之拉高,不是只挪动顶部顶点。它是补设修正,不是老师原始尺寸。

Arnold 的 Camera (AA) 从3改为6,Diffuse Samples 从2改为4。提高 Samples 用于减少随机噪点,不会改变镜头角度,也不会自动产生 Glow。此对照同时改变背板和采样,不能据此把所有外观差异归因于单个参数。

加高背板和提高采样的实际渲染
Frame 32 · 下载03 MAX · 参数读回

实际检查:03上沿不再露出背板外的背景,噪点明显减少,但仍可见细颗粒。此次渲染约94秒。老师33:30的画面是更亮的白色场景,火球朝右上倾斜;03仍偏暗、角度不同,还不算匹配课堂最终画面。

04–05 · 恢复源背景,找回保存的视口

源工程 Class2.max 的 Background = RGB (0,0,0),Environment Map = None,没有 Light 对象。原来的学习副本曾把 Background 改成 RGB (70,70,70),因此并非原生环境设置。黑色 Background 不代表模型和地面一定渲染成黑色;这里必须看实际渲染结果。

04:用补设 Camera 比较方向

在03基础上恢复源工程 Background,Camera Position 改为 (−650,−1100,500) cm,看向 (−265,0,150),FOV 40°。保留加高的场景和 AA 6 / Diffuse Samples 4。画面已经呈白色场景、火球朝右上倾斜;Camera 仍是估计值。背景和角度同时改动,不能用这一对照单独证明照明变化的原因。

源背景加补设镜头实际渲染
下载04 MAX

05:直接使用源工程保存的 Perspective View

Class2.max 虽然没有 Camera 对象,却保存了第4视口的 Perspective View 变换与 FOV 45°。05重新载入源工程,保留原模型、材质、场景尺寸、环境和视口;只把检查帧设为32、输出设为800 × 400、Camera (AA) 设为3,以及渲染线程设为8,然后另存、重新打开并渲染。

怎么查看:打开05,保持右下角 Perspective 视口为活动视口,在 Frame 32 渲染。这个文件使用保存的 Perspective View,并不是名为Camera的场景对象;随意旋转视口会改变构图。需要重新对照时重新打开05副本。

源工程保存视口参考渲染
下载05 MAX

实际检查:05呈白色场景,火球朝右上倾斜,构图比先前的01–03更接近课堂参考;低采样背景仍有可见噪点。保存的源视口是可追溯依据,但还不能声称它与视频33:30的视口变换逐值一致。原生0–100帧动画已输出,见下方动画部分;最终 Glow 与评分项验收仍未完成。

源视口、环境和模型可渲染状态读回 · 04参数读回

火球为什么会动:Phase 与 Offset 的实际读值

下面是 Class2 保存工程的六个时刻读值,不是从截图猜出的数值。它们是“这一帧计算出的参数”,不能据此断言每个时刻都有 Key。表格取小数便于输入,原始浮点数见证据文件。

先分清三个位置

在本工程里,Gradient Ramp #9 / #12 的 Phase 始终为0,但 U Offset 随时间改变。因此仅看 Phase 不动,不能判断贴图没有动画。Noise #1 / #7 则同时改变 Phase 与 Coordinates Offset。

FrameNoise #1 Phase#1 Offset (X,Y,Z)Noise #7 Phase#7 Offset (X,Y,Z)Ramp #9 U OffsetRamp #12 U Offset
000, 0, 000, 0, 000
130.1950.00325, -0.26, 00.780.91, -1.3, 00.910.65
170.2550.00425, -0.34, 01.021.19, -1.7, 01.190.85
400.60.01, -0.8, 02.42.8, -4, 02.82
761.140.019, -1.52, 04.565.32, -7.6, 05.323.8
1001.50.025, -2, 067, -10, 075

跟着工程检查一次

  1. 打开 Class2 学习副本,先 Save As 新文件;关闭 Auto Key。
  2. 按 M 打开 Slate Material Editor,找到名称为“贴图 #7”的 Noise。名称编号只用于定位这份工程,重新创建节点时编号可能不同。
  3. 将 Time Slider 设为0,查看 Noise / Phase = 0 和 Coordinates / Offset = (0,0,0)。
  4. 把 Time Slider 设为100,查看 Phase = 6、Offset = (7,−10,0)。保持 Auto Key 关闭,只观察参数,不要覆盖现有动画。
  5. 找到 Gradient Ramp #9,在 Coordinates 查看 U Offset:Frame 0为0,Frame 100为7;再看 #12,终值是5。两路不同的读值可形成不同纹理运动。
  6. 若要自己练习关键帧,另做副本,只选一路参数。先在 Frame 0确认起始值,打开 Auto Key,到 Frame 100输入终值,再立刻关闭 Auto Key。两端相同并不保证中间速度相同:仍要在 Curve Editor 检查控制器与切线,并用表中中间帧核对。

课堂阶段差异:本保存版 Noise #1 在 Frame 100 为 Phase 1.5、Offset (0.025,−2,0);教学记录7后段出现的是 Phase 2、Offset (2,−6,0)。这不是同一状态,不应把两组值混抄到一个“老师最终值”表中。当前连续渲染保留 Class2 保存状态。

六帧原始读回与源文件校验 · 下载保留原生动画控制器的学习副本

原生火球动画:0–100帧

沿用 Class2 保存的模型、Shader 动画与 Perspective View,30fps,640 × 320,共101帧、约3.37秒。每帧都由3ds Max实际渲染,PNG逐帧读取、MP4完整解码核对101帧。这里没有新增火球飞行路径,也没有把单张图平移成动画。

下载06动画MAX · 下载MP4 · 逐帧读取与解码记录

怎么在 Max 里检查

  1. 打开06,保持保存的右下角 Perspective View,关闭 Auto Key。
  2. 拖动 Time Slider,从0到100观察形状与纹理。不要为了查看而误开 Auto Key 修改参数。
  3. 在 Slate Material Editor 里选中已连接的 Noise 或 Gradient Ramp,比较不同帧的 Phase、Offset 数值。动画会改变纹理和模型的外观;它不必让整个对象的位置移动。
  4. 用 Render Setup 的 Time Output 选择 Range 0–100,输出图像序列。帧序列完整后再按30fps合成视频,方便单独重渲染失败帧。
12个动画时刻的实际渲染

这是原生动画检查版,Camera (AA) 3仍有可见噪点;未宣称无缝循环,也未完成最终Glow或全部评分项。逐帧文件检查不能代替与教学视频逐帧对照。

Arnold Lens Effects:同一帧比较 Bloom Strength

07和08均已保存、重新打开并渲染 Frame 32。相同模型、Shader、Perspective View、640 × 320输出;07与08只改变 Bloom Strength。以下数值为补充练习设置,不是老师已核对的数值。

Parameter0708用途
Bloom Threshold1.21.2决定多亮的像素开始产生光晕
Bloom Radius1616控制光晕扩散范围
Bloom Strength0.120.6控制叠加回图像的光晕强度

Emission 是材质的发光设置;Lens Effects 是图像后处理。此处没有提高材质 Emission。Bloom 不会替代场景照明,也不是新增体积烟雾。

无 Lens Effects
无 Lens Effects
07 · Strength 0.12
07 · Strength 0.12
08 · Strength 0.6
08 · Strength 0.6

自己改一次

  1. 打开07,设为 Frame 32,保持原来的 Perspective View。
  2. 按 F10 打开 Render Setup,确认 Renderer 为 Arnold,在 Arnold Imagers 中找到 Lens Effects。
  3. 先保持 Threshold 1.2、Radius 16,只把 Strength 从0.12改为0,渲染并比较;再改为0.6。
  4. 想改变扩散范围时再调整 Radius;想限制参与光晕的亮部时再调整 Threshold。每次只改一个值,并保持帧与视角不变。

下载07:轻光晕 · 下载08:强度对照 · 07参数读回 · 08参数读回

参数用途参考 Autodesk:Imager Lens Effects。本机使用 Radius / Strength 参数界面。

光晕版0–100帧已全部输出并完成MP4解码核对;请看本页“带光晕火球动画”。最终质量、尺寸与评分验收仍未完成。

09:提高采样后的动画工程

在08基础上,Camera (AA) 3→4,Diffuse Samples 2→3;Bloom仍为 Threshold 1.2、Radius 16、Strength 0.6。Frame 32已保存、重新打开并渲染,背景颗粒减轻,仍有少量噪点。此处为Frame32采样对照;完整光晕视频见本页新增动画章节。

提高采样后的火球Frame32

下载09 MAX · 采样参数读回

带光晕火球动画:0–100帧

沿用 Class2 保存的模型、Shader 动画与 Perspective View,增加已保存的 Arnold Lens Effects,30fps,640 × 320,共101帧、约3.37秒。每帧都由3ds Max实际渲染,PNG逐帧读取、MP4完整解码核对101帧。这里没有新增火球飞行路径,也没有把单张图平移成动画。

下载09动画MAX · 下载MP4 · 逐帧读取与解码记录

怎么在 Max 里检查

  1. 打开09,保持保存的右下角 Perspective View,关闭 Auto Key。
  2. 拖动 Time Slider,从0到100观察形状与纹理。不要为了查看而误开 Auto Key 修改参数。
  3. 在 Slate Material Editor 里选中已连接的 Noise 或 Gradient Ramp,比较不同帧的 Phase、Offset 数值。动画会改变纹理和模型的外观;它不必让整个对象的位置移动。
  4. 用 Render Setup 的 Time Output 选择 Range 0–100,输出图像序列。帧序列完整后再按30fps合成视频,方便单独重渲染失败帧。
12个动画时刻的实际渲染

本版保留原生动画,补设 Camera (AA) 4、Diffuse Samples 3、Bloom Threshold 1.2、Radius 16、Strength 0.6。仍有少量噪点;未宣称无缝循环或全部评分项完成。逐帧文件检查不能代替与教学视频逐帧对照。

原片画面索引

教学记录9.mp4 source frame at 01_164.87s
教学记录9.mp4 source frame at 02_618.25s
教学记录9.mp4 source frame at 03_1133.46s
教学记录9.mp4 source frame at 04_1648.66s
教学记录9.mp4 source frame at 05_1957.79s

交付预览工程:UV 实际检查

打开 09_Fireball_Bloom_Animation.max,在 Frame 50 读取修改器计算后的网格。检查没有改动 MAX 文件。下面是实际 UV 数据绘制的图,不是老师的 Edit UVWs 界面截图。

Generate Mapping Coords 给模型生成 UV;Unwrap UVW → Open UV Editor 用于检查或编辑这些 UV;贴图里的 Coordinates → Tiling / Offset 则改变贴图取样位置。三者不能互相替代。

ObjectMap Channel 1UV seam edgesZero-area UV triangles
Loft001不存在——
Cylinder001存在520
Sphere001存在780
Cylinder002存在100

三个效果模型有 UV;Loft001 没有 Map Channel 1。背景是否需要 UV 取决于其材质是否使用 UV 贴图,不能仅因通道不存在就认定渲染错误。UV seam edges 是相邻几何面在 UV 中断开的边数,圆柱展开通常需要接缝;这个数量本身不是错误数。范围中的约 0.0000001 偏差是浮点精度量级。

Cylinder001 UV channel 1
Cylinder001:9984 个三角形的实际 UV 布局。
Sphere001 UV channel 1
Sphere001:960 个三角形的实际 UV 布局。
Cylinder002 UV channel 1
Cylinder002:480 个三角形的实际 UV 布局。

你在 Max 里怎么查看

  1. 先用 Save As 保存检查副本,选中 Cylinder002。
  2. 添加 Unwrap UVW,设 Map Channel = 1,打开 Open UV Editor。
  3. 先看现有展开,不要立即按 Flatten Mapping;重新展开会改变当前火焰贴图分布。
  4. 比较 Cylinder001、Cylinder002 和 Sphere001 的布局,再回到材质的 Coordinates 检查 Tiling / Offset。

本次没有重新展开,也没有把“存在 UV”记为“已完成老师全部 UV 编辑”。尚待核对:老师手动编辑的具体步骤、纹理接缝在动画中的表现。未检测全部 UV 重叠或纹理拉伸。

下载完整原生读取结果