SuperAPI AI 工具集

blender-rendering

设计与创作

查看项目

更新于 10-16 19:37

技能介绍

用途

本技能面向 Blender 5.2 的渲染环节,负责引擎选择、质量与性能调参、色彩管理、输出格式以及命令行/渲染农场批量渲染。执行模型位于 blender-core,场景灯光与摄像机相关内容位于 blender-lighting-lookdev。

快速调用

脚本 scripts/render_batch.py 支持一次调用完成渲染:

  • scripts/render_batch.py -- --engine CYCLES --preset final --res 1920 1080 --out //render/hero_#### --frames 1
  • scripts/render_batch.py -- --preset preview --frames 1-120 --format MP4 --out //render/turntable
  • scripts/render_batch.py -- --cameras CamA CamB CamC --format EXR_MULTI --out //render/shots/

预设

  • preview:Cycles 64 spp、阈值 0.05、分辨率 50%;EEVEE 16。
  • final:512 spp、0.01;EEVEE 128 并启用光线追踪。
  • product:1024 spp、透明背景。

GPU 自动选择顺序为 OptiX > CUDA > HIP > Metal > oneAPI,降噪器随之匹配(OptiX 或 OpenImageDenoise)。

引擎选择

  • Cycles:最终质量、产品、建筑可视化、玻璃/SSS/焦散、烘焙。路径追踪器,需设置 GPU,使用自适应采样加降噪。
  • EEVEE(5.x,原 "Next"):快速 look-dev、风格化、动态图形、预览。支持光线追踪反射/GI(use_raytracing)、虚拟阴影贴图;即使无头运行也需要 GPU。
  • Workbench:播放预览、黏土/matcap 审查、QA 图。速度快,但无光照准确性。

引擎标识符:CYCLES、BLENDER_EEVEE、BLENDER_WORKBENCH。

Cycles 质量杠杆(按影响排序)

  • 自适应采样(adaptive_threshold:final 0.01 / preview 0.05)加降噪(OIDN,使用 albedo+normal 通道,denoising_input_passes="RGB_ALBEDO_NORMAL")。仅提高采样数是最低效的做法。
  • 光路:室内需要漫反射反弹 ≥ 4;产品镜头总计 12、光泽 4、玻璃透射 8–12。Clamp indirect 5–10 可消除萤火虫,代价是少量能量损失。
  • 灯树(use_light_tree,开启)适合多灯光场景。路径引导(仅 CPU)用于困难间接光。
  • 少量大光源优于多个小光源。自发光网格比面光源噪点更多。
  • 持久数据(render.use_persistent_data)可加速动画与转台渲染。预览时可使用 simplify(最大细分、纹理限制)。
  • 5.2:纹理缓存(render.use_texture_cache、use_auto_generate_texture_cache)通过生成 .tx mip 贴片,降低纹理密集场景的内存占用。

色彩管理(每个项目决定一次)

  • AgX(默认):摄影风格,能处理高亮。外观包括 AgX - Punchy、- Base Contrast 等。
  • Khronos PBR Neutral:忠实呈现 albedo。用于产品/电商与资产审查,并与 three.js NeutralToneMapping 匹配。
  • Standard:需要与像素值一致的图形/UI/纹理输出。
  • ACES 1.3 / 2.0:VFX 管线(素材、其他 DCC)。

全局亮度调整应使用曝光(view_settings.exposure),而非灯光功率。显示设备为 sRGB,或对 HDR 交付使用 Display P3 / Rec.2100。

输出格式

  • 静帧:PNG 8/16 位(胶片透明时使用 RGBA)或 JPEG 用于网页预览。
  • 合成/VFX:EXR 多层(EXR_MULTI、DWAA 16 位)并包含通道(Denoising Data、Cryptomatte、AO、Mist、Z)。5.0 重命名了通道:Diffuse Color、Depth 等。
  • 视频:先渲染帧(PNG/EXR),再编码(FFmpeg 或 VSE),因为 MP4 中途崩溃会丢失全部内容。预览可直接输出 MP4。在 5.0+ 中先设置 image_settings.media_type 再设置 file_format。
  • 透明:film_transparent=True 加 PNG/EXR。仅玻璃透明需要 film_transparent_glass。

合成器(5.0+ API)

示例:

ng = bpy.data.node_groups.new("Comp", "CompositorNodeTree"); scene.compositing_node_group = ng ng.interface.new_socket("Image", in_out="OUTPUT", socket_type="NodeSocketColor") rl, glare, out = ng.nodes.new("CompositorNodeRLayers"), ng.nodes.new("CompositorNodeGlare"), ng.nodes.new("NodeGroupOutput") ng.links.new(rl.outputs["Image"], glare.inputs["Image"]); ng.links.new(glare.outputs["Image"], out.inputs[0])

不再有 Composite 节点:组输出即最终图像。许多节点选项现在是输入插槽(Glare Type、Threshold、Strength),可用 blender-geometry-nodes/scripts/gn_builder.py 查看/描述。File Output 节点包含 directory、file_name、file_output_items。

命令行渲染(渲染农场、CI)

blender -b scene.blend -E CYCLES -o //out/frame_#### -F PNG -s 1 -e 120 -a 可渲染动画。-f 10 渲染单帧。Python 参数放在 -- 之后。

-- --cycles-device OPTIX(或 CUDA/HIP/METAL/ONEAPI)可在不使用 Python 的情况下选择设备。

用 -s/-e 跨机器拆分帧,或在共享存储上使用 Placeholders + No Overwrite(render.use_placeholder、use_overwrite=False)。

注意事项

  • 添加引擎时 scene.render.engine 枚举报告不全。应在 try/except 中赋值(脚本已处理)。
  • EEVEE 在后台仍需要 GPU 上下文。CI 无 GPU 时,使用 Cycles CPU 或 Workbench。
  • bpy.ops.render.render(write_still=True) 会写入 render.filepath。不加 write_still,结果只存在于 Render Result 中。
  • 玻璃/焦散噪点:仅在需要时启用焦散(caustics_refractive),提高透射反弹,或对窗户使用 Thin Wall(5.2)伪造。
  • 萤火虫:clamp indirect、filter glossy / blur glossy(blur_glossy 0.5–1),以及更大的光源。