Skip to content

Blender addon - #34

Open
SakuraEntropia wants to merge 14 commits into
OpenMoonRay:mainfrom
SakuraEntropia:blender-addon
Open

Blender addon#34
SakuraEntropia wants to merge 14 commits into
OpenMoonRay:mainfrom
SakuraEntropia:blender-addon

Conversation

@SakuraEntropia

Copy link
Copy Markdown

Compatibility:

Issues/Tickets:

Release notes comment:

Comments for the reviewer:

Look or scene setup change:

Special notes for production:

Attention/Reviewers:

AI Assisted Development:

Checklist:

  • Documentation has been updated.
  • Includes new unit tests.
  • Includes new RATS tests.

- blender_addon/: Blender render-engine integration that exports scenes to
  MoonRay RDLA, renders with the moonray CLI, loads the result into the
  Render Result, and optionally denoises with OIDN.
- Full Blender shader-node graph compilation: Principled/Diffuse/Glossy/
  Glass/Transparent/Emission, Mix/Add Shader, image textures, normal maps,
  and static baking of color/scalar node subgraphs.
- RDLA intermediate scene is optional (Save RDLA Scene setting).
- Direct Render Image button in the MoonRay render panel.
- COMPATIBILITY.md: fixes required to build MoonRay on macOS 27 / Apple
  Silicon / AppleClang 21 (generator mismatch, Qt skip, memory-bounded
  parallelism, Xcode-generator avoidance, git clone hardening, Blender
  5.2 RenderEngine API workarounds).
- patches/: the openmoonray superbuild/preset changes used for the build.
- Helper scripts: build_moonray.sh, verify_moonray.sh,
  finish_build_and_test.sh, install_addon.sh.
- ShaderNodeTexNoise now exports as MoonRay NoiseMap_v2 (color mode) with
  scale/detail/distortion/seed mapped from the Blender node.
- Value model extended with generic map references so more procedural
  nodes can be added the same way.
- test_materials.py: noise-driven material coverage (9 checks).
- World Environment Texture nodes now export as EnvLight with a texture
  (HDRI lighting), alongside the constant-color fallback.
- test_full_scene.py: env_texture check (16 checks total).
- README: full feature matrix, usage, and test instructions.
@linux-foundation-easycla

linux-foundation-easycla Bot commented Aug 27, 2026

Copy link
Copy Markdown

CLA Not Signed

- Camera shutter attributes (mb_shutter_open/close, one Blender frame).
- Per-vertex velocity export from Blender's 'velocity' attribute when
  available (Blender 4.x); Blender 5.x no longer generates it, so object
  motion blur is skipped there. Frame-sampling was removed after it proved
  to crash Blender 5.2 alpha (render depsgraph invalidation).
- test_motion_blur.py coverage.
- ShaderNodeMapping (location/scale, approximate rotation) now exports as
  ImageMap/ImageNormalMap offset/scale/rotation attributes, with the V-flip
  mirror applied to the Y components.
- Camera shift_x/shift_y export as MoonRay film offsets.
- test_materials.py: mapping checks (11 total).
- Materials with Backface Culling export geometry side_type=single-sided.
- World Mapping-node rotation orients the EnvLight via node_xform.
- test_full_scene.py: side_type + env rotation checks (18 total).
- Wire the auto_detect preference: the engine now searches candidate
  install roots (workspace default, /Applications/MoonRay, ~/moonray,
  $MOONRAY_ROOT) when the configured path has no moonray binary.
- resolve_moonray_root also honors the MOONRAY_ROOT environment variable.
- Remove dead code (unused constants/imports).
CMake derives search prefixes from PATH entries; Anaconda's bin on PATH
made OpenColorIO link Anaconda yaml-cpp 0.8 headers against its own
yaml-cpp 0.6.3 (via the expat imported target) - undefined symbols.
Fixed by scrubbing anaconda/conda env vars for the dependency build.
- Remove the bare __init__(*args) on the RenderEngine: it swallowed
  Blender's struct-creation call, leaving every engine method (report/
  update_stats/begin_result/...) raising ReferenceError and the render
  silently black. Helper logic now lives in module-level functions.
- Pass -out to the moonray CLI so the output path is explicit (mock
  renderer test relies on the same contract); mock now reads image_width/
  image_height from the RDLA.
- Rename MoonRay beauty channels R/G/B/A to Combined.* via oiiotool so
  RenderLayer.load_from_file() maps them into the render result (was
  producing black with "expected channel Combined.R not found").
- Fix RDLA object emission: use Lua variable assignments for geometry,
  lights, materials and GeometrySet blocks; keep GeometrySet registration
  per mesh/instancer while the Layer references the raw geometry.
- Add ispc-ninja and codesign CMake patches; enable DEPS_ROOT/TBB_ROOT/
  MOONRAY_USE_METAL=OFF in the macos-release-ninja preset.
- E2E render test now aims the camera at the origin and asserts non-black
  output (mean > 0.01).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant