Blender addon - #34
Open
SakuraEntropia wants to merge 14 commits into
Open
Conversation
- 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.
|
- 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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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: