docs(course): add the 15-module web course and narrated editor video
Generate a static beginner course from course data with real Chromium screenshots for every module, and record a narrated walkthrough of UV, Texture Paint, Compositor, Geometry Nodes, Spreadsheet and OPFS reopen. The render lesson video covers M08/M09; the course page is linked from the tutorial landing. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
18
tests/golden/COURSE-FULL-001/capture-report.json
Normal file
18
tests/golden/COURSE-FULL-001/capture-report.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"generatedAt": "2026-11-12T21:44:43.270Z",
|
||||
"gpuMode": "hardware",
|
||||
"modules": [
|
||||
{
|
||||
"moduleId": "M07",
|
||||
"title": "Texture Paint 手绘贴图",
|
||||
"status": "PASS",
|
||||
"images": [
|
||||
"steps/M07-texture-paint.jpg",
|
||||
"steps/M07-painted-stroke.jpg"
|
||||
],
|
||||
"durationMs": 9901
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
}
|
||||
77
tests/golden/COURSE-FULL-001/video/narration.json
Normal file
77
tests/golden/COURSE-FULL-001/video/narration.json
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"voice": "zh-CN-XiaoxiaoNeural",
|
||||
"chapters": [
|
||||
{
|
||||
"id": "intro",
|
||||
"title": "开场:这几块编辑器现在能做什么",
|
||||
"narration": "这一课把四块新增的编辑器连起来用一遍:UV 展开、纹理绘制、Compositor 合成、Geometry Nodes 与 Spreadsheet 数据检查。所有保存都用浏览器 OPFS,需要本地文件时再手动下载。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/intro.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/intro.wav",
|
||||
"durationMs": 17400
|
||||
},
|
||||
{
|
||||
"id": "open-studio",
|
||||
"title": "打开练习工程",
|
||||
"narration": "先打开课程摄影棚,再追加猴头 GLB。状态栏从六个对象变成七个,活动对象是 Suzanne。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/open-studio.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/open-studio.wav",
|
||||
"durationMs": 9576
|
||||
},
|
||||
{
|
||||
"id": "uv",
|
||||
"title": "UV 展开",
|
||||
"narration": "切到 UV Editing 工作区。桌面 Blender 的 UV 编辑器要求网格处于编辑模式,所以我们显式进入编辑模式。点击全选 UV,等待选择提交,再点击展开所选 UV。橙色点变成展开后的 UV 岛。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/uv.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/uv.wav",
|
||||
"durationMs": 19344
|
||||
},
|
||||
{
|
||||
"id": "texture-paint",
|
||||
"title": "纹理绘制",
|
||||
"narration": "回到 Shading 工作区,从 RE 资产库双击砖墙材质,再导入本地贴图作为材质图片。切到 Texture Paint,选择这张图,在画布上画一条白色笔画。松开鼠标后笔画提交,一次笔画只增加一个版本。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/texture-paint.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/texture-paint.wav",
|
||||
"durationMs": 19320
|
||||
},
|
||||
{
|
||||
"id": "compositor",
|
||||
"title": "Compositor 合成",
|
||||
"narration": "切到 Compositing。画布默认有一个 Composite 输出。添加 RGB 颜色和曝光节点,把 RGB 连到曝光,再把曝光连到 Composite。把曝光改成一点五,点击执行合成,右侧预览变亮。点击提交图,节点图写入原生 Main。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/compositor.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/compositor.wav",
|
||||
"durationMs": 21480
|
||||
},
|
||||
{
|
||||
"id": "geometry-nodes",
|
||||
"title": "Geometry Nodes",
|
||||
"narration": "选中猴头,切到 Geometry Nodes。添加 Transform 节点,从 Group Input 连到 Transform,再从 Transform 连到 Group Output。点击提交图,网格随修改器更新。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/geometry-nodes.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/geometry-nodes.wav",
|
||||
"durationMs": 14424
|
||||
},
|
||||
{
|
||||
"id": "spreadsheet",
|
||||
"title": "Spreadsheet 数据检查",
|
||||
"narration": "在同一个工作区下方的 Spreadsheet 里,把数据源切到顶点,可以看到位置和法线列。输入过滤值,只留下匹配的行;列面板可以隐藏或重排列。Spreadsheet 是只读的,不会修改场景。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/spreadsheet.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/spreadsheet.wav",
|
||||
"durationMs": 17232
|
||||
},
|
||||
{
|
||||
"id": "save-reopen",
|
||||
"title": "保存到 OPFS 并重开",
|
||||
"narration": "点击顶栏保存项目,工程写入浏览器 OPFS。刷新页面,从最近项目重新打开。UV、纹理笔画、合成节点和 Geometry Nodes 图都还在。需要本地 .blend 时,再单独点击下载 .blend。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/save-reopen.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/save-reopen.wav",
|
||||
"durationMs": 19992
|
||||
},
|
||||
{
|
||||
"id": "summary",
|
||||
"title": "总结与边界",
|
||||
"narration": "这四块编辑器已经可以完成入门工作流。明确边界:纹理绘制目前是最小二维画笔,合成器只覆盖常用节点,Geometry Nodes 只使用允许列表,Spreadsheet 只读。完整清单和限制写在课程第十五模块。",
|
||||
"mp3": "../tests/golden/COURSE-FULL-001/video/narration/summary.mp3",
|
||||
"wav": "../tests/golden/COURSE-FULL-001/video/narration/summary.wav",
|
||||
"durationMs": 19080
|
||||
}
|
||||
]
|
||||
}
|
||||
67
tests/golden/COURSE-FULL-001/video/timeline.json
Normal file
67
tests/golden/COURSE-FULL-001/video/timeline.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "PASS",
|
||||
"gpuMode": "hardware",
|
||||
"durationMs": 198097,
|
||||
"chapters": [
|
||||
{
|
||||
"id": "intro",
|
||||
"title": "开场:这几块编辑器现在能做什么",
|
||||
"startMs": 1998,
|
||||
"endMs": 23406
|
||||
},
|
||||
{
|
||||
"id": "open-studio",
|
||||
"title": "打开练习工程",
|
||||
"startMs": 23407,
|
||||
"endMs": 36988
|
||||
},
|
||||
{
|
||||
"id": "uv",
|
||||
"title": "UV 展开",
|
||||
"startMs": 36989,
|
||||
"endMs": 60333
|
||||
},
|
||||
{
|
||||
"id": "texture-paint",
|
||||
"title": "纹理绘制",
|
||||
"startMs": 60334,
|
||||
"endMs": 83657
|
||||
},
|
||||
{
|
||||
"id": "compositor",
|
||||
"title": "Compositor 合成",
|
||||
"startMs": 83658,
|
||||
"endMs": 109141
|
||||
},
|
||||
{
|
||||
"id": "geometry-nodes",
|
||||
"title": "Geometry Nodes",
|
||||
"startMs": 109142,
|
||||
"endMs": 127572
|
||||
},
|
||||
{
|
||||
"id": "spreadsheet",
|
||||
"title": "Spreadsheet 数据检查",
|
||||
"startMs": 127573,
|
||||
"endMs": 148806
|
||||
},
|
||||
{
|
||||
"id": "save-reopen",
|
||||
"title": "保存到 OPFS 并重开",
|
||||
"startMs": 148807,
|
||||
"endMs": 172801
|
||||
},
|
||||
{
|
||||
"id": "summary",
|
||||
"title": "总结与边界",
|
||||
"startMs": 172802,
|
||||
"endMs": 195883
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"screencast": {
|
||||
"path": "/home/mes123456/workinf_Blender_Wasm/tests/golden/COURSE-FULL-001/video/screencast.webm",
|
||||
"bytes": 16422241
|
||||
}
|
||||
}
|
||||
89
tests/golden/COURSE-FULL-001/video/video-report.json
Normal file
89
tests/golden/COURSE-FULL-001/video/video-report.json
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "PASS",
|
||||
"voice": "zh-CN-XiaoxiaoNeural",
|
||||
"video": {
|
||||
"path": "../web/app/public/tutorial/full/video/full-course-editors-720p.mp4",
|
||||
"sha256": "25a52b9f08ec8a67d9b3e6ff06166425f2992996e35aca687c91e5dfdf67d137",
|
||||
"bytes": 7569658
|
||||
},
|
||||
"narration": {
|
||||
"path": "../tests/golden/COURSE-FULL-001/video/narration.wav",
|
||||
"sha256": "c025ce95717087b62501a2f06080bf3b31679d2be5352fde71b908378e58176d",
|
||||
"bytes": 19017356
|
||||
},
|
||||
"vtt": {
|
||||
"path": "../web/app/public/tutorial/full/video/re-pbr-lesson.zh-Hans.vtt",
|
||||
"sha256": "ce90e056846ce2d98d08a96a54b13e1c0df808fd2fd09aaca51376f56646ea93",
|
||||
"cues": 9
|
||||
},
|
||||
"poster": {
|
||||
"path": "../web/app/public/tutorial/full/video/poster.jpg",
|
||||
"sha256": "a67d1d7c34365205d177e5003daa0ebce2ebbf8f0bcfd27370b7c35cf5de6fe1"
|
||||
},
|
||||
"chapters": [
|
||||
{
|
||||
"id": "intro",
|
||||
"title": "开场:这几块编辑器现在能做什么",
|
||||
"startMs": 1998,
|
||||
"endMs": 19398,
|
||||
"narration": "这一课把四块新增的编辑器连起来用一遍:UV 展开、纹理绘制、Compositor 合成、Geometry Nodes 与 Spreadsheet 数据检查。所有保存都用浏览器 OPFS,需要本地文件时再手动下载。"
|
||||
},
|
||||
{
|
||||
"id": "open-studio",
|
||||
"title": "打开练习工程",
|
||||
"startMs": 23407,
|
||||
"endMs": 32983,
|
||||
"narration": "先打开课程摄影棚,再追加猴头 GLB。状态栏从六个对象变成七个,活动对象是 Suzanne。"
|
||||
},
|
||||
{
|
||||
"id": "uv",
|
||||
"title": "UV 展开",
|
||||
"startMs": 36989,
|
||||
"endMs": 56333,
|
||||
"narration": "切到 UV Editing 工作区。桌面 Blender 的 UV 编辑器要求网格处于编辑模式,所以我们显式进入编辑模式。点击全选 UV,等待选择提交,再点击展开所选 UV。橙色点变成展开后的 UV 岛。"
|
||||
},
|
||||
{
|
||||
"id": "texture-paint",
|
||||
"title": "纹理绘制",
|
||||
"startMs": 60334,
|
||||
"endMs": 79654,
|
||||
"narration": "回到 Shading 工作区,从 RE 资产库双击砖墙材质,再导入本地贴图作为材质图片。切到 Texture Paint,选择这张图,在画布上画一条白色笔画。松开鼠标后笔画提交,一次笔画只增加一个版本。"
|
||||
},
|
||||
{
|
||||
"id": "compositor",
|
||||
"title": "Compositor 合成",
|
||||
"startMs": 83658,
|
||||
"endMs": 105138,
|
||||
"narration": "切到 Compositing。画布默认有一个 Composite 输出。添加 RGB 颜色和曝光节点,把 RGB 连到曝光,再把曝光连到 Composite。把曝光改成一点五,点击执行合成,右侧预览变亮。点击提交图,节点图写入原生 Main。"
|
||||
},
|
||||
{
|
||||
"id": "geometry-nodes",
|
||||
"title": "Geometry Nodes",
|
||||
"startMs": 109142,
|
||||
"endMs": 123566,
|
||||
"narration": "选中猴头,切到 Geometry Nodes。添加 Transform 节点,从 Group Input 连到 Transform,再从 Transform 连到 Group Output。点击提交图,网格随修改器更新。"
|
||||
},
|
||||
{
|
||||
"id": "spreadsheet",
|
||||
"title": "Spreadsheet 数据检查",
|
||||
"startMs": 127573,
|
||||
"endMs": 144805,
|
||||
"narration": "在同一个工作区下方的 Spreadsheet 里,把数据源切到顶点,可以看到位置和法线列。输入过滤值,只留下匹配的行;列面板可以隐藏或重排列。Spreadsheet 是只读的,不会修改场景。"
|
||||
},
|
||||
{
|
||||
"id": "save-reopen",
|
||||
"title": "保存到 OPFS 并重开",
|
||||
"startMs": 148807,
|
||||
"endMs": 168799,
|
||||
"narration": "点击顶栏保存项目,工程写入浏览器 OPFS。刷新页面,从最近项目重新打开。UV、纹理笔画、合成节点和 Geometry Nodes 图都还在。需要本地 .blend 时,再单独点击下载 .blend。"
|
||||
},
|
||||
{
|
||||
"id": "summary",
|
||||
"title": "总结与边界",
|
||||
"startMs": 172802,
|
||||
"endMs": 191882,
|
||||
"narration": "这四块编辑器已经可以完成入门工作流。明确边界:纹理绘制目前是最小二维画笔,合成器只覆盖常用节点,Geometry Nodes 只使用允许列表,Spreadsheet 只读。完整清单和限制写在课程第十五模块。"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user