Moonray macOS: update build compatibility for Houdini 21.0.680#228
Moonray macOS: update build compatibility for Houdini 21.0.680#228rolledhand wants to merge 31 commits into
Conversation
|
Tested on production build of Houdini 21.0.671, works there as well. |
|
Thanks for the update and PR contribution! We'll take a look at it soon. In the meantime, could you please send over a CLA to moonray@dreamworks.com, so that's cleared? |
|
Hi @randypacker - just sent the CLA. Also tried to update to the latest release. I'd like to help even more and get things working, but this is as far as I'm currently capable of taking it. Hope that some of it helps at least slightly, even as an initial kick-off. As a quick summary of what works and what doesn't. It builds and renders, lights work but when it comes to the native DWA materials they still don't take any effect at all, although the mtlx standard surface seems to be working for some material traits. Dome light doesn't work when I tried to add one myself (worked on one of the "Solaris" demos), same case for motion blur from one of the demos, tweaking light parameters e.g. spread doesn't automatically update the IPR - normalize has an unpleasing effect, render settings started working with the latest release. I'm attaching my testing images. H21 seems to require libpxr_usdRiPxrImaging.dylib instead of libpxr_usdRiImaging.dylib. Docs: There have been some issues with https://github.com/log4cplus/log4cplus when I was trying to install/build, hence the change there. Additionally what I was attempting as a bit of a workaround was getting "DWA materials linked to mtlx native ones" as a bit of a workaround on the older release. Managed to get basic mtlx image working without tiling, but it goes way too deep for me at my current stage. I've got that one in another fork which was "forcing it" through Materials.cc in hydraMoonray.
|
|
Sorry for the duplicate images of cornell box and the "motion blur/noise sampler" demos. |
|
The DomeLight not working will be probably caused by the fact that since some USD version, dome lights have DomeLight_1 as a type. |
|
/dco |
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Adds remaining parent-repo build/setup compatibility changes for Houdini 21 macOS. Aligns Houdini mode preset/build config with Python 3.11 and Boost Python 3.11. Includes dependency/build reproducibility updates where staged. Includes Houdini USD/PXR compatibility mapping if staged. Does not claim native DWA material workflow is fixed. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
aa7a352 to
9ee53f2
Compare
|
Everything signed off now @matthewlow-dwa , I've already sent some signed CLA on mail, but signed some "EasyCLA" in here as well. |
|
Thanks @rolledhand ! We are in the middle of transferring to a new CLA management system, so thanks for re-signing in EasyCLA, as we are unable to transfer prior signatures sent via email. EasyCLA will be the system to use going forward. |
|
You're welcome, hope this PR helps at least slightly, even as a kick-off version. I'm calling it a "Houdini launches with it and you can render state" with a couple of things which I mentioned earlier which aren't working. Additionally here's one more of my attempts to get mtlx working - the tiling still didn't work (besides the commit name as I had it on Karma IPR by a mistake): But it was rather in general a bit "hacky" workaround by translating the native mtlx nodes into the native Moonray ones, not a true mtlx implementation, but I managed to get a non-tiled albedo to work. Not sure if it might help you in any way. |
a640ec6 to
6ebf881
Compare
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
6ebf881 to
aefd23b
Compare
|
A quick and short summary, still in build/test mode, especially hdMoonRay is not the cleanest yet. I am trying to establish a working base first. Most of the visible Houdini/Solaris UI changes with screenshots are in So far:
Built for Houdini 20.5 / Python 3.11 so far. I plan to bump to Houdini 21 after making the H20.5 path stable first. Next steps before the H21 bump:
During this build I had some issues around the light filter / mesh light adapter path. The problematic parts were mainly So I would treat light filters and mesh lights as a later dedicated pass: |
|
Mesh Tesellation with subdivision controls exposed which include smooth normals as well and working along with the Motion Blur tab. Current issues: terminal error like this: Will be fixing that in the next push. |
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
|
Native Moonray camera controls exposed for pers/orth camera. Other camera types and some features deferred for now due to the design of Solaris. It's possible to implement them in the future and expand to the full feature set. |
Pins hdMoonray and moonray_dcc_plugins to the native Solaris light filter integration work. The DCC update adds generated MoonRay light filter VOP HDAs for Houdini's Light Filter Library workflow. The hdMoonray update adds light filter ramp interpolation token expansion so editable Solaris ramp filters can render with authored ramp point counts. Validated in Houdini/Solaris with MoonRay light filters, including ColorRampLightFilter ramps with more than the default two points. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
|
Checkpoint update: initial native MoonRay light filter exposure is now wired through the Houdini/Solaris path. This is not intended as a final “all light filters are complete” checkpoint yet. The current state is that the generated MoonRay light filter VOP HDAs are exposed for Houdini’s Light Filter Library workflow, and the hdMoonray side now handles editable Solaris ramp interpolation tokens by expanding them to the authored ramp point count. Validated so far:
Still needs follow-up:
|
Updates the hdMoonray submodule to include the initial native MoonRay light filter integration work for Houdini/Solaris. The pinned hdMoonray changes cover editable ramp interpolation handling, delegate path remapping for linked scene objects, and lifecycle hardening for light filters. This is an integration checkpoint. Additional light filters are exposed for validation, but not all filter types should be considered fully production-stable yet. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Updates the hdMoonray submodule with lifecycle hardening for native MoonRay light filters in Houdini/Solaris. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
|
A small note before the next commit and push, the light filter life cycle should now be fixed. I'll have to do a proper testing on all of them. Eventually when it comes to Solaris and light filters you can you the native subnetwork assign to light (more than one) to achieve |
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
H20.5/macOS runtime and Beauty output validation passI pushed a follow-up cleanup and validation pass for the H20.5/macOS MoonRay runtime path, the default Beauty output path, and the custom MoonRay Render Settings LOP disk-output contract. This pass keeps the scope intentionally narrow: Beauty/default output is validated, while non-beauty AOV transport remains deferred. What changed
ValidationValidated from a fresh H20.5.584 shell with production
Deferred / still openNon-beauty AOVs are still intentionally deferred. They are mapped and declared, and the debug renderer can produce data, but production Arras currently zero-fills those RenderOutput payloads.
One runtime issue is still noted separately: Arras logs |
Pin hdMoonray to c7bbd30109884fcaf4c2536c1849dd54208cb0c1, which adds OpenColorIO-backed renderer working-space conversion for authored typed colors. No DCC Render Settings LOP/ROP output-path changes are included. No AOV transport changes are included. No Arras runtime/signing changes are included beyond the validated hdMoonray submodule pin. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
hdMoonRay color-management checkpointI pushed the first real hdMoonRay renderer working-space path for Houdini 20.5.584. This makes The implementation adds a direct OpenColorIO-backed conversion layer in What changed
Core proof
ValidationValidated against Houdini 20.5.584:
Deferred / still openThis pass intentionally does not claim full material color management in the broad sense.
|
|
Still need to do actual testing on this part, since I'm suspicious about a beauty pass encoded with "raw" value, but we will see. I'm stabilizing the USD Render ROP next which used to be that way before too. Also as an insight - this doesn't mean that AOVs are stable, but |
Pins moonray_dcc_plugins to the MoonRay USD Render ROP output-path wiring fix. No backend, OCIO, Arras, AOV transport, or renderer metadata changes included. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
DCC/USD Render ROP output-path fixI pushed a DCC-only fix for the generated MoonRay USD Render ROP output-path contract. The previous MoonRay ROP helper deliberately left
That made successful renders hard to find and did not match native USD Render ROP behavior. What changed
ValidationValidated against Houdini 20.5.584:
Still openThis does not address the next Render Settings issues yet:
|
|
Also there's a time dependency now, but that'd be an easy fix once the more important issues are fixed. |
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
|
Fixed the time dependency and switching uniform/adaptive in the dropdown now works correctly with "greying out" the adaptive/uniform sampling in the native LOP. |
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Native AOV zero-fill root cause found and repairedI ran a full fix-and-prove pass for the production native AOV zero-fill issue on the H20.5.584 MoonRay/Houdini/Solaris stack. The important result is that the zero-fill was not caused by USD RenderVar authoring, RenderBuffer lookup, RDLA declaration, or final EXR writing. Temporary sender/receiver diagnostics showed:
That narrowed the first proven data loss to the H16 A standalone Apple Silicon repro then confirmed the root cause: the existing ARM NEON scalar half conversion corrupted values such as What changed
ValidationValidated against Houdini 20.5.584 with production Rebuilt and installed/signed the affected runtime libraries:
Confirmed:
Production
Still openThis pass does not claim to solve the broader AOV/UI surface yet:
|
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
MoonRay material / denoise AOV checkpointAdding a checkpoint for the material and denoising AOV work now pinned in this branch. This pass adds a separate Material / Denoise AOV section to the custom MoonRay Render Settings LOP. Exposed and production-proven outputs:
The denoise outputs follow the official MoonRay denoiser contract:
Not exposed after testing:
These were discovered but not exposed because production proof was missing or not meaningful in this pass. Validated: DIrectly in Houdini, oiio, etc. |
|
The following areas are intentionally deferred for now:
|
Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com>
271aaf7 to
d169571
Compare
|
This is a ton of solid work, Jakub. The macOS/H21 build path alone is a big unblock. Why it's stuck
Proposal: split it
How I can help
|


































Compatibility:
build (Houdini 21.0.680, macOS Tahoe, Xcode 26.0.1)
Issues/Tickets:
Release notes comment:
Adds macOS compatibility updates required to build OpenMoonRay against Houdini 21.0.680 using Houdini-provided USD/PXR and Python 3.11, including Boost 1.82 alignment and Houdini USD library naming compatibility updates.
Comments for the reviewer:
-DNO_USD=1to avoid local USD conflicts.libpxr_usdRiImaging.dylib->libpxr_usdRiPxrImaging.dyliblibhboost_python311-mt-a64.dylibdid not resolve all expectedpxr_boost::pythonreferences during link, whilelibpxr_python.dylibdid.cmake_modulesbranch:cmake_modulescompare:Look or scene setup change:
No intended look change; this PR is compatibility, pathing, and build integration focused.
Special notes for production:
Attention/Reviewers:
dreamworksanimation/openmoonray-maintainers
Checklist: