| Age | Commit message (Collapse) | Author |
|
- Use bpy.app.version for version detection instead of attribute sniffing
- Blender 5.0.x: warn that per-pass compositor routing is broken (Combined only);
compositing_node_group path kept ready for when Blender fixes this upstream
- Remove all DEBUG prints and failed use_nodes=True experiment
- configure_scene() returns only discard_dir (compositor always configured)
- Move _SOCKET_ALIASES to module level; simplify slots/None fallback
handoff(Gemini): blender_export.py stable for Blender 4.5 LTS; Blender 5.x
path is forward-compatible but produces Combined-only output until upstream fix.
|
|
RenderLayer sockets
- Activate compositor in Blender 5.0+ by relying on compositing_node_group
assignment (no use_nodes needed, avoids deprecation warning)
- Document full CompositorNodeRLayers output socket list for Blender 5.0.1
- Clean up SOCKET_ALIASES to match confirmed socket names
|
|
after render
|
|
|
|
|
|
- Prefer file_output_items over file_slots; use explicit is-None checks
so empty collections do not fall through to the legacy attribute.
- Clear out_node.file_name so multilayer EXR frames are named 0001.exr
instead of file_name0001.exr.
handoff(Gemini): blender_export.py now produces frames/0001.exr on Blender 5.0.1.
|
|
|
|
- compositor: use compositing_node_group (Blender 5+) / node_tree (<=4.x)
- file output: use file_output_items.new(type, name) (5+) / file_slots (older)
- file output: use directory attr (5+) / base_path (older)
- suppress default PNG output via mkdtemp + shutil.rmtree after render
- link passes by name instead of positional index
- add TODO for Shadow socket name variance across blend files
- clean up: extract helpers, PASS_SOCKETS constant with socket types
handoff(Gemini): blender_export.py now works on Blender 5.0.1
|
|
Fixes KeyError when blend file uses a non-default view layer name.
Adds --view-layer NAME arg; pass '?' to list available layers.
Defaults to index 0 with a clear error if the name is not found.
handoff(Gemini): blender_export.py view layer selection now robust
|
|
G-buffer (Phase 1):
- Add NodeTypes GBUF_ALBEDO/DEPTH32/R8/RGBA32UINT to NodeRegistry
- GBufferEffect: MRT raster pass (albedo+normal_mat+depth) + pack compute
- Shaders: gbuf_raster.wgsl (MRT), gbuf_pack.wgsl (feature packing, 32B/px)
- Shadow/SDF passes stubbed (placeholder textures), CMake integration deferred
Training infrastructure (Phase 2):
- blender_export.py: headless EXR export with all G-buffer render passes
- pack_blender_sample.py: EXR → per-channel PNGs (oct-normals, 1/z depth)
- pack_photo_sample.py: photo → zero-filled G-buffer sample layout
handoff(Gemini): G-buffer phases 3-5 remain (U-Net shaders, CNNv3Effect, parity)
|