diff options
| -rw-r--r-- | cnn_v3/docs/HOW_TO_CNN.md | 8 | ||||
| -rw-r--r-- | cnn_v3/training/blender_export.py | 15 |
2 files changed, 14 insertions, 9 deletions
diff --git a/cnn_v3/docs/HOW_TO_CNN.md b/cnn_v3/docs/HOW_TO_CNN.md index de20cd9..3013e1c 100644 --- a/cnn_v3/docs/HOW_TO_CNN.md +++ b/cnn_v3/docs/HOW_TO_CNN.md @@ -146,19 +146,21 @@ Produces all 20 feature channels including normals, depth, mat IDs, and shadow. ```bash blender -b scene.blend -P cnn_v3/training/blender_export.py -- \ - --output /tmp/renders/frame_### \ + --output /tmp/renders/ \ --width 640 --height 360 \ --start-frame 1 --end-frame 200 ``` The `--` separator is **required**; arguments after it are passed to the Python script, -not to Blender. Each `#` in `--output` is replaced by a zero-padded frame digit. +not to Blender. `--output` is the base directory for the compositor File Output node; +Blender appends the slot name and frame number automatically (e.g. `Combined0001.exr`). +`//` is a Blender shorthand for the directory containing the `.blend` file. **Available flags:** | Flag | Default | Notes | |------|---------|-------| -| `--output PATH` | `//renders/frame_###` | `//` = blend file directory; `###` = frame padding | +| `--output PATH` | `//renders/` | Base output directory; `//` = blend file directory | | `--width N` | 640 | Render resolution | | `--height N` | 360 | Render resolution | | `--start-frame N` | scene start | First frame | diff --git a/cnn_v3/training/blender_export.py b/cnn_v3/training/blender_export.py index 76180fd..bb0d3d9 100644 --- a/cnn_v3/training/blender_export.py +++ b/cnn_v3/training/blender_export.py @@ -4,16 +4,17 @@ Configures render passes and a compositor File Output node, then renders the current scene to a multi-layer EXR. Usage (headless): - blender -b scene.blend -P blender_export.py -- --output renders/frame_### + blender -b scene.blend -P blender_export.py -- --output /tmp/renders/ # List available view layers in the blend file: blender -b scene.blend -P blender_export.py -- --view-layer ? # Use a specific view layer: - blender -b scene.blend -P blender_export.py -- --output renders/frame_### --view-layer "MyLayer" + blender -b scene.blend -P blender_export.py -- --output /tmp/renders/ --view-layer "MyLayer" -Each '#' in the output path is replaced by Blender with the frame number (zero-padded). -The script writes one multi-layer EXR per frame containing all required passes. +--output is the base directory for the compositor File Output node. Blender appends +the slot name and frame number to each file (e.g. /tmp/renders/Combined0001.exr). +Use // as a prefix to resolve relative to the .blend file directory. G-buffer pass mapping: Combined → training target RGBA (beauty) @@ -42,8 +43,10 @@ def parse_args(): description="Configure Blender render passes and export multi-layer EXR." ) parser.add_argument( - "--output", default="//renders/frame_###", - help="Output path prefix (use ### for frame number padding). Default: //renders/frame_###", + "--output", default="//renders/", + help="Base output directory for compositor File Output node. " + "Blender appends slot name + frame number (e.g. Combined0001.exr). " + "Use // for blend file directory. Default: //renders/", ) parser.add_argument("--width", type=int, default=640, help="Render width in pixels (default: 640)") parser.add_argument("--height", type=int, default=360, help="Render height in pixels (default: 360)") |
