简介:《Blender教程中文手册入门》是一份面向零基础与初级学习者的中文PDF教程,针对初学者上手免费开源3D创作套件时界面陌生、概念繁多的问题,系统梳理Blender的框架逻辑、界面布局与基础功能操作,并逐步延伸到建模、材质贴图、动画制作和3D渲染等实用环节。资源包共1个PDF文件,大小约137.19MB,内容以图文讲解为主,适合按章节循序阅读,也可作为日常操作时的查阅手册。目前已有7033人学习,说明其在入门群体中具备一定参考价值。手册从软件定位、主要功能与历史沿革讲起,帮助读者理解UV贴图、着色器、网格、细分面等术语,再通过阶段化知识推进,让读者由懵懂到入门,最终具备从零制作完整作品的基本能力。
1. 一份能按顺序读下去的中文手册,比十个“十分钟入门”视频管用
上周有个做硬件产品的朋友找我,说装完软件打开界面就卡住了:视图里一个默认方块,鼠标左键点下去出来的是个十字准星,跟他熟悉的任何一款设计软件都对不上。他缺的不是天赋,是一份能按顺序读下去的材料。我给他的就是这份 Blender 中文手册,一套把安装、界面、建模、材质贴图、动画与渲染排好序的 blender 课程资源,也是很多人找 blender教程中文手册入门 时最该先拿到的那份底稿。它适合三类人:没碰过三维软件的转岗者、要从零出一张产品渲染图的独立开发者、被英文文档劝退过的自学者。手册不承诺几天成神,但它把每个面板为什么长这样、每个参数动了会发生什么,按能复现的顺序讲清楚了。
2. 版本与安装落地:三条发行通道怎么选,配置文件放哪
三维软件的第一道坎从来不是建模,是装完之后发现界面和教程截图对不上。手册是按功能组织的,不是按版本组织的,所以你得自己把“版本”这个变量先钉死。这一章解决三件事:选哪个发行通道、装到哪个目录、以及怎么确认显卡真的被用上了。
2.1 稳定版、长期支持版、每日构建:按交付压力选,不按新鲜感选
官方渠道大致分三类包,选错的代价不是崩溃一次那么简单,而是项目做到一半被迫重做资产。
| 通道 | 更新节奏 | 适合谁 | 主要风险 |
|---|---|---|---|
| 稳定发行版 | 大约每三个月一版 | 大多数自学者、单次交付项目 | 新功能尝鲜要等,插件生态跟得上 |
| 长期支持版(LTS) | 两年维护,不加新功能、不改 API | 有半年以上周期的商业项目、团队协作 | 新节点、新修改器用不了,教程里的新面板找不到 |
| 每日构建版 | 每天滚动 | 想验证某个修复或新特性的人 | 未完整测试,可能崩溃,不适合当唯一工作版本 |
我的习惯是:机器上永远同时留两个版本,一个 LTS 当“生产环境”,一个最新稳定版当“试验田”。.blend文件的向下兼容性很差——高版本存的文件,低版本大概率打不开,或者打开后材质、修改器、几何节点整片变红。这不是 bug,是数据结构变了。所以升级之前,先把当前项目另存一份带版本号的副本,这是我交过学费换来的规矩。
另外提醒一点:手册里写的菜单位置在不同大版本之间会挪。比如渲染引擎的枚举值、材质里“高光”这类输入口的名字,历史上改过不止一次。看到教程里的按钮找不到,先怀疑版本,再怀疑自己。
2.2 三平台安装路径与便携化配置
手册里对各平台都给了两套装法:安装包和压缩包。安装包省事,会注册文件关联、建快捷方式;压缩包不写系统目录,适合多版本并存和移动硬盘带走。我基本只用压缩包,因为三维项目经常要在两台机器之间搬,配置跟着走能省掉大量重复设置。
# 以 Linux 为例:固定目录 + 版本号入路径 + 软链接做统一入口 mkdir -p ~/apps/blender # 把官方压缩包解到 apps 下,目录名保留完整版本号,方便多版本并存 tar -xf blender-<版本>-linux-x64.tar.xz -C ~/apps/blender # 做一个稳定入口,将来升级只改软链,桌面快捷方式和自写脚本都不用动 ln -sfn ~/apps/blender/blender-<版本>-linux-x64/blender ~/.local/bin/blender # 确认能起来,并且确认启用的就是刚解压的这一份 which blender && blender --version这段脚本的关键在软链接:~/.local/bin一般已经在 PATH 里,ln -sfn的-f会覆盖旧链接而不是报错,-n防止把已有目录当成目录去写。升级时把新版本解到同级目录,再执行一次ln -sfn指过去,旧版本原封不动留着,随时能回退。
便携化的做法在两个平台上思路一样:在程序目录下建一个config文件夹,让配置文件和插件跟着程序走,而不是写进用户目录。
# macOS:在应用包内的资源目录下建 config,配置就落在包内 mkdir -p "/Applications/Blender.app/Contents/Resources/<版本>/config" # Windows 解压版:在解压目录的 LOCAL 子目录下建 config mkdir -p "D:/apps/blender/LOCAL/config"参数说明:<版本>要换成和程序实际版本一致的数字目录名,写错了等于没建,程序会继续读写用户目录,你会以为“便携化没生效”。判断生效没生效有个笨办法但很准——改一个偏好设置,退出,看config目录下有没有生成userpref.blend,有就是对了。
提示:别在便携目录和用户目录之间来回切。两套配置并存时,插件路径、资产库路径、字体路径全都会打架,出错信息还很难看懂。
2.3 驱动、图形接口与渲染设备自检
手册强调过界面基于 OpenGL,并且对显卡驱动的要求比同类工具低。但“要求低”不等于“不用管”。实际翻车最多的是渲染:界面能开,一到出图就报错,或者干脆悄悄退回 CPU,一帧跑十几分钟。
装完先跑一段脚本,把设备情况打印出来,比在偏好设置里一层层点要快。
import bpy # 拿到渲染插件的偏好设置,刷新一次设备列表 prefs = bpy.context.preferences.addons["cycles"].preferences prefs.refresh_devices() # 打印每块设备的类型和是否启用,用来判断到底有没有识别到独显 for dev in prefs.devices: print(f"device={dev.name!r} type={dev.type} enabled={dev.use}") # 当前选中的计算后端,空字符串通常意味着还在 CPU 上 print("compute_device_type =", prefs.compute_device_type)逻辑说明:refresh_devices()会重新枚举硬件,界面刚启动时设备列表可能是空的或者过期的,不刷新直接读会得到误导性结果。dev.use是逐设备的开关,很多人只把后端设成了 GPU,却没勾选具体设备,结果还是 CPU 在跑。
参数说明:compute_device_type的取值随版本和平台变化,常见的是NONE(CPU)、CUDA、OPTIX、HIP、METAL、ONEAPI这类字符串,写法和你显卡厂商、操作系统、驱动版本三方都有关系。至于bpy.context.scene.render.engine的枚举值,新版本里实时渲染引擎的名字改过,写脚本时别硬编码,先在 Python 控制台里用bpy.types.RenderSettings.bl_rna.properties['engine'].enum_items查一遍当前可用值,比照着旧教程抄稳得多。
3. 界面与视图导航:把 OpenGL 视口练成肌肉记忆
三维软件劝退人的地方,八成不在“不会建模”,而在“鼠标一动视角就飞了”。Blender 的界面是一套可编程的窗口管理系统,理解了它的分区逻辑和导航方式,后面看任何教程都不会再迷路。
3.1 工作区与编辑器:先把布局固定成自己的一套
默认布局是别人替你选的,不一定适合你的活。手册里对每个编辑器(3D 视图、属性、大纲、时间线、图像编辑器、节点编辑器)都有单独章节,正确的读法是:先只认四个区域,其余先不管。
左上角是编辑器类型切换,任何一个区域都能变成任何编辑器;顶部是工作区标签,建模、UV 编辑、着色、动画各有一套预置布局。我的做法是留一套“建模 + 大纲 + 属性 + 时间线”的工作区,然后删掉用不上的标签,减少误点。
这里有个反直觉的点:不要一上来就自定义快捷键和布局。等你按手册走完一遍完整流程,知道自己在哪一步最烦,再去改,改完才有价值。我见过太多人第一天就把键位改成另一个软件的样子,然后所有中文教程里的快捷键都对不上,白白卡了两个月。
3.2 视图导航与选择:三键鼠标、循环边与 Alt 冲突
Blender 的操作逻辑有三条主线:中键旋转、Shift + 中键平移、滚轮缩放;左键选择,右键调出上下文菜单;数字小键盘控制正视图和透视切换。
对于没有三键鼠标的笔记本用户,手册给的办法是开启“模拟三键鼠标”,用 Alt + 左键代替中键。这是个能用但会带来连锁反应的开关——很多窗口管理器默认把 Alt + 鼠标拖拽绑定成“移动窗口”和“调整大小”,一旦冲突,你在视图里想转个角度,整个软件窗口跟着跑,非常像玄学。
处理办法是改窗口管理器的修饰键,把它从 Alt 换成 Super(也就是那个带系统图标的键),Blender 里的 Alt 组合就空出来了。这一步做完,视图导航立刻从“时灵时不灵”变成稳定可预期。
选择操作里最值得先练的是循环边和循环面:进入编辑模式后,Alt + 左键点一条边,会选中整条环状边线,这是建模阶段加线、卡边的主力操作。如果 Alt 被系统占用,这个功能就相当于废了,所以前面那一步不是可选项。
| 操作 | 快捷键 | 典型用途 |
|---|---|---|
| 旋转视图 | 中键拖拽 | 检查形体比例 |
| 平移视图 | Shift + 中键 | 大范围移动视线 |
| 正视图 / 透视图切换 | 小键盘 1 / 5 | 对位、检查对称 |
| 循环边选择 | Alt + 左键 | 卡边、加支撑线 |
| 环切 | Ctrl + R | 均匀加线 |
| 从菜单搜索命令 | F3 | 忘了快捷键时的兜底 |
F3 搜索是新手最该先记住的一个键。手册里提到的功能名,都能在搜索框里输入关键词直接调出来,连带着还能看到它当前的快捷键。记不住快捷键不是问题,不知道该搜什么是问题。
3.3 单位、快捷键与启动文件:把重复设置固化成默认值
每次新建文件都要调一遍单位、渲染分辨率、输出路径,这种重复劳动交给启动文件。思路是:新建一个空场景,设好参数,存成启动文件,以后打开就是这个状态。
import bpy scene = bpy.context.scene # 单位制:公制,显示单位用毫米(做小件产品时更直观) scene.unit_settings.system = 'METRIC' scene.unit_settings.length_unit = 'MILLIMETERS' # 注意:不要为了“看起来更小”去改 scale_length, # 那个值是给外部资产换算用的,乱改会让导入的模型整体缩放 1000 倍 # 渲染基础参数先定死,避免每次出图分辨率不一致 scene.render.resolution_x = 1600 scene.render.resolution_y = 1200 scene.render.resolution_percentage = 100 scene.render.image_settings.file_format = 'PNG' scene.render.image_settings.color_mode = 'RGBA' # 写进用户配置,下次启动仍然有效 bpy.ops.wm.save_userpref()逻辑说明:unit_settings只影响界面上的数值显示和输入解释,不改变网格的真实坐标。length_unit设成毫米之后,你在属性面板里输入“40”,含义是 40 毫米,而不是 40 个单位。resolution_percentage是最容易被忽略的一项,它被设成 50 的时候,你填多少分辨率都只出一半大小的图,很多人以为是自己渲染设置错了,其实是这里。
如果要改键位,别在界面上一个个点,用脚本先查再改,改完立即保存:
import bpy # 改的是用户键位配置,不是插件里的默认键位 kc = bpy.context.window_manager.keyconfigs.user km = kc.keymaps["3D View"] target = "view3d.view_axis" # 视角切换这一组命令 for item in km.keymap_items: if item.idname == target and item.type == "NUMPAD1": item.type = "ONE" # 换成主键盘的 1,笔记本没有小键盘时更顺手 item.ctrl = True # 加 Ctrl 降低误触,代价是多按一个键 print("remapped:", item.idname, item.type, item.ctrl) kc.update() # 让改动立即生效 bpy.ops.wm.save_userpref() # 落盘,否则重启就没了参数说明:keyconfigs.user是用户层,keyconfigs.addon是插件层,改错层的结果是“当时生效、重启后还原”。item.type用的是键名枚举而不是字符,写"1"不报错但不生效,要写"ONE"。kc.update()不能省,省了要等下一次界面重绘才看得到效果,容易误判成没改成功。
4. 从空场景到一张成品图:建模、材质、灯光、渲染的最小闭环
手册后半部分按模块拆得很细,但真正让人“入门”的不是把每个模块读完,而是完整走通一遍闭环。这一章用一个 40 毫米见方的外壳做例子,把清理场景、建网格、加修改器、上材质、摆灯和相机、出图这条链路串起来,每一步都落在脚本上,你可以直接改参数复现。
4.1 空场景起步:单位、比例与清理
新手最常见的错误是在默认场景里直接开干:默认方块没删、默认灯没关、默认相机位置乱,渲出来的图一片灰还找不到原因。一开始就用空场景,后面省掉一半排查时间。
import bpy # 从空场景开始,而不是删默认物体——默认场景里的世界环境、渲染设置也会一起被清掉 bpy.ops.wm.read_factory_settings(use_empty=True) scene = bpy.context.scene scene.unit_settings.system = 'METRIC' scene.unit_settings.length_unit = 'MILLIMETERS'逻辑说明:read_factory_settings(use_empty=True)会重置到出厂设置并清空所有物体,比逐个delete干净。参数use_empty=True是关键,去掉它就会得到一个带默认方块和灯的场景。
比例这件事要提前定。后面灯光功率、相机焦距、修改器宽度全都跟场景尺度挂钩。一个 40 毫米的物体配一盏按“米”标定的灯,结果不是过曝就是全黑,这类问题靠调参数是调不出来的,只能靠统一尺度。
4.2 网格与修改器:倒角、细分、布尔的顺序问题
建模阶段先记住一件事:修改器是有顺序的,从上往下依次求值,顺序错了结果完全不同。倒角放细分前面,得到的是圆润但有清晰分界的边;反过来,细分先把面切碎了,倒角就会变成一团糊。
import bpy, math # 主体:40 毫米见方的外壳 bpy.ops.mesh.primitive_cube_add(size=40) body = bpy.context.active_object body.name = "Shell" # 倒角:限制方式用角度,只对夹角大于阈值的边生效,避免把平面也倒圆 bev = body.modifiers.new("Bevel", 'BEVEL') bev.width = 1.5 bev.segments = 3 bev.limit_method = 'ANGLE' bev.angle_limit = math.radians(40) # 细分曲面放在最后,用较低的视图级别保证操作流畅,渲染级别单独提高 sub = body.modifiers.new("Subdiv", 'SUBSURF') sub.levels = 1 sub.render_levels = 2 # 平滑着色,让细分后的表面不出现明显棱面 bpy.ops.object.shade_smooth()参数说明:bev.width是倒角宽度,单位跟随场景,这里是 1.5 毫米;segments决定倒角圆弧的段数,3 段在近距离特写下已经够用,再高只是增加面数。limit_method = 'ANGLE'配angle_limit是控制倒角范围的核心,改小了会把不该倒的边也倒掉。sub.levels是视图级别,render_levels是出图级别,前者影响操作手感,后者影响渲染时间和最终精度,两者分开是为了让你在低配机器上也能干活。
布尔运算要单独提一句:它是这套流程里最容易出破面的操作。常见做法是把布尔放在倒角和细分之前,并且保证参与运算的两个网格都是封闭流形,没有重复顶点、没有零面积面。一旦出现黑面、法线翻转,先检查网格本身,别急着怪修改器。
4.3 材质与 UV:Principled BSDF 的四个参数先记住
材质看着复杂,入门阶段只要抓住一个节点:原理化 BSDF。它把绝大多数常见材质都覆盖了,四个参数能解决八成需求:基础色决定固有色,粗糙度决定是塑料还是金属感,金属度决定反射行为,法线决定表面细节。
mat = bpy.data.materials.new("ShellMat") mat.use_nodes = True bsdf = mat.node_tree.nodes["Principled BSDF"] bsdf.inputs["Base Color"].default_value = (0.62, 0.65, 0.68, 1.0) # 线性空间的灰蓝 bsdf.inputs["Roughness"].default_value = 0.35 # 0 镜面 1 全漫反射 bsdf.inputs["Metallic"].default_value = 0.0 # 0 非金属 1 纯金属 body.data.materials.append(mat)逻辑说明:颜色的四个分量是 RGBA,注意这里是线性空间的值,不是你在取色器里看到的 sRGB 数值。填 0.5 的灰,出图看起来会偏亮,这属于色彩管理带来的正常现象,不是材质坏了。
参数说明:use_nodes = True是必须的,否则材质只走旧的固定管线,脚本里对节点的修改全部无效。输入口的名字随版本会变,比如高光相关的口在某些版本里叫Specular,在另一些版本里拆成了Specular IOR Level。写脚本时稳妥的做法是先打印一遍[i.name for i in bsdf.inputs],照着实际名字取,比死记硬背强。
UV 部分,手册讲得比较系统,入门阶段只需要知道:贴图要靠 UV 坐标定位,默认 UV 展开对立方体这类规则形体基本够用;一旦贴的是有方向性的图案(文字、条纹、logo),就必须进 UV 编辑器手动展。圆柱和球体优先用柱面和球面投影,别一上来就智能展开,接缝位置会失控。
4.4 灯光、相机与渲染输出:采样、降噪和色彩管理
灯和相机是新手最容易应付了事的两块,但它们对出图质量的影响比多加两千面还大。
import math # 相机:斜上方 45 度看过去,这是产品图最不容易出错的机位 bpy.ops.object.camera_add(location=(70, -70, 55), rotation=(math.radians(63), 0, math.radians(45))) scene.camera = bpy.context.active_object # 主光:面光源比点光源柔和,阴影过渡更适合产品渲染 bpy.ops.object.light_add(type='AREA', location=(50, -30, 90)) key = bpy.context.active_object key.data.energy = 800 # 面光源功率按瓦计,场景尺度是毫米时要重新标定 key.data.size = 60 # 光源面积越大,阴影越软,噪点也越少 scene.render.engine = 'CYCLES' scene.cycles.samples = 128 # 采样数,噪点压不下去时优先加这个 scene.cycles.use_denoising = True # 降噪,能把 128 采样拉到接近 512 的观感 scene.render.film_transparent = True # 透明背景,方便后期合成 scene.render.filepath = "//render/shell.png" # // 代表 .blend 文件所在目录 bpy.ops.wm.save_as_mainfile(filepath="//shell_closed_loop.blend") bpy.ops.render.render(write_still=True)逻辑说明://前缀是相对路径,指向当前.blend文件所在目录。用绝对路径写死在脚本里,换台机器渲染就报“找不到路径”,这是协作场景里最常见的低级错误。
参数说明:samples和use_denoising是一对。采样低加降噪,速度最快;采样高不加降噪,细节最实但慢;两个都开是常规做法。light.data.size很多人从来不调,默认值偏小,出来的阴影边缘生硬、噪点还多,把面积调大往往比加采样更划算。渲染引擎的枚举名在不同版本间变过,写脚本前先查一遍当前可用值。
5. 避坑与排查:手册没写透的五处翻车现场
手册负责讲“正确姿势”,但真实项目里出问题的往往是环境组合。这一章是我自己踩过、也帮别人排查过的五类问题,按现象、原因、解决三步写,遇到了可以直接对号入座。
5.1 出图一片灰、噪点怎么加采样都压不下去
现象:渲染结果整体发闷,阴影区颗粒感明显,把采样从 128 加到 512 只是变慢,观感几乎没改善。
原因通常有两个。一是场景里只有一个很小的光源,且没有环境光,光线全靠单点硬打,噪点的来源是光线采样不足而不是采样数不足;二是色彩管理没设置,视图变换用了默认值,高光被压平,看起来就是“灰”。
解决:先把光源面积调大,或者加一块大面积补光把暗部抬起来;再看色彩管理里的视图变换,产品图常用标准或偏胶片感的选项,逐个对比一遍;最后才是加采样。顺序反了,时间全浪费在等渲染上。
5.2 中文界面下字体变方块,文字对象也显示不出来
现象:切到中文界面后,部分菜单显示成方块;新建文字对象后,视口里什么都没有。
原因:界面字体和文字对象用的是两套字体设置。界面字体依赖系统字体回退,缺字就出方块;文字对象默认使用内置字体,某些版本里对内嵌中文字符的支持有限。
解决:界面字体在偏好设置里指定一个系统里确实存在的中文字体文件;文字对象则在字体数据块里手动加载同一个字体文件,加载完还要把字体的“紧凑”之类选项检查一遍。做完之后建议把字体文件路径改成相对路径打包进项目,否则换机器又是一次方块。
5.3 快捷键失灵:Alt + 鼠标被系统抢走了
现象:Alt + 左键选循环边没反应,或者一按整个窗口跟着鼠标跑。
原因:窗口管理器把 Alt + 拖拽绑定成了窗口移动和缩放,事件在到达软件之前就被拦截了。
解决:把窗口管理器的修饰键从 Alt 换成 Super 键。桌面环境不同入口不同,命令行方式一般一行配置就能改,改完注销重进生效。这一步不做的直接后果是建模效率砍半,因为卡边、加支撑线全靠这个组合。
5.4 GPU 渲染报错,然后悄悄退回 CPU
现象:日志里刷一行报错,渲染照常开始,但一帧要跑十几分钟,任务管理器里显卡占用接近零。
原因:计算后端和设备开关没配好,或者显存不够导致内核编译失败,程序回退到 CPU 继续跑,不弹窗、不中断,所以很容易被当成“机器性能不行”。
解决:先跑第二章那段设备自检脚本,确认设备被识别且已启用;再降一档看是不是显存问题,把渲染分辨率或细分级别临时调低验证;最后确认驱动版本,图形接口相关的报错大多能在更新驱动后消失。判断有没有真的用上显卡,最直接的办法是渲染时看显卡占用,不看日志。
5.5 打开别人的 .blend 提示版本不兼容,或者修改器全乱
现象:文件能打开,但材质变紫、修改器图标变红、几何节点报错;或者干脆提示由更高版本创建。
原因:.blend存的是完整的数据结构,新版本加入的节点类型、输入口、修改器参数,旧版本不认识。修改器“乱”通常不是坏了,而是求值顺序在新版本里被调整过。
解决:向上兼容基本无解,只能升版本打开。要保交付,就在项目开始前和协作方约定同一个 LTS 版本,别各装各的最新版。真要跨版本迁移,先在一份副本上打开,把材质和节点逐个重新连接,确认没问题再覆盖原件。
注意:所有排查动作都在副本上做。三维项目的破坏性操作太多,一次误保存就能把两天的调整抹掉。
6. 进阶验证:把手册知识变成能自动检查的产物
读到这一步,最怕的状态是“每个按钮都认识,但说不出自己做的东西对不对”。我的办法是把手册里的规范翻译成脚本,让机器替你检查,这比反复看教程有效得多。
一个实用的小工具是场景体检脚本,用后台模式跑,批量输出每个文件的关键指标:对象数量、总面数、材质数量、是否缺失贴图、渲染引擎、分辨率。跑完拿到一张表,哪个文件超标一眼就能看出来。
import bpy, os, sys, csv # 后台模式调用:blender -b --python check.py -- /path/to/project root = sys.argv[-1] rows = [] for name in sorted(os.listdir(root)): if not name.endswith(".blend"): continue path = os.path.join(root, name) bpy.ops.wm.open_mainfile(filepath=path) scene = bpy.context.scene tris = 0 for obj in scene.objects: if obj.type == 'MESH': # 用三角化后的面数估算渲染成本,比原始面数更接近真实开销 tris += sum(len(p.vertices) - 2 for p in obj.data.polygons) missing = [i.filepath for i in bpy.data.images if i.source == 'FILE' and not os.path.exists(bpy.path.abspath(i.filepath))] rows.append({ "file": name, "objects": len(scene.objects), "tris": tris, "materials": len(bpy.data.materials), "missing_images": len(missing), "engine": scene.render.engine, "res": f"{scene.render.resolution_x}x{scene.render.resolution_y}", }) with open(os.path.join(root, "report.csv"), "w", newline="", encoding="utf-8") as f: writer = csv.DictWriter(f, fieldnames=list(rows[0].keys())) writer.writeheader() writer.writerows(rows)逻辑说明:sys.argv[-1]取的是--之后的第一个参数,这是后台脚本传参的固定写法,--之前是程序自己的参数。循环里每次open_mainfile会清掉上一个文件的数据块,所以统计是逐文件独立的,不会互相污染。
参数说明:tris用多边形顶点数减二累加,是对三角化面数的近似,比直接数多边形更接近渲染真实开销;missing检查的是贴图路径是否还存在,这一项在跨机器协作时命中率最高,因为贴图常常被放在某个人的桌面目录里。report.csv用 UTF-8 写,避免中文文件名在不同系统上乱码。
跑完这张表,再配合一张九宫格缩略图(同一机位、同一分辨率、统一命名),整个项目的健康状况就有据可查了。缩略图的机位建议固定在脚本里,别每次手动摆相机——手动摆的相机角度差个三五度,横向对比就没意义了。
我自己还有一个习惯:每学完手册里的一个新模块,就写一个不超过二十行的脚本把它跑一遍,脚本留在项目目录里当笔记。半年后回头看,那些脚本比任何读书笔记都值钱,因为它们能直接运行、直接验证。
从那以后我每次接一个新版本,都会先把设备自检、单位设置、渲染输出这三段脚本强制走一遍,再动模型。踩过的坑大多不是技术难,而是省了这一步。希望帮到你。
本文还有配套的精品资源,点击获取