Replies: 31 comments 25 replies
-
Hi @dagoose75 ! You will need to compile MoonRay. Interaction within Houdini will be done through the Hydra interface (the source code for which we also supply). The link you provided contains enhancements to LOPs to provide MoonRay shaders so that MoonRay-specific attributes are accessible. Without the LOPs plugins, you would be limited to the UsdPreviewSurface material. |
Beta Was this translation helpful? Give feedback.
-
hi, cant get moonray show up in houdini 19.5 as described here... maybe there is a more detailed setup/install instructions on how to get it work in solaris? |
Beta Was this translation helpful? Give feedback.
-
Hi All, Thanks |
Beta Was this translation helpful? Give feedback.
-
Hi there, I'm a Houdini noob. I followed the setup instructions. It took me a while to find the Dwa base shader then I hooked it up to a collect node. Thanks in advance for any help on this! |
Beta Was this translation helpful? Give feedback.
-
Just click on DwaBaseMaterial1, you've got collect1 selected now. But you're currently in /obj context so MoonRay won't work there anyway. You need to use Solaris. Click the menu at the top where it says Build and select Solaris. |
Beta Was this translation helpful? Give feedback.
-
I can see I have a TON to learn here. But just to make sure....do I need to manually add a node to each parameter I want to tweak. Say the diffuse color...that's not automatic ?...I need to dig in there for each attribute? Thanks! |
Beta Was this translation helpful? Give feedback.
-
First thing's first, click on Persp there in the viewport. Is MoonRay listed in the dropdown? If it is, what happens when you click on it? |
Beta Was this translation helpful? Give feedback.
-
I did get an error message though... xdg-open: no method available for opening 'http://mydw.anim.dreamworks.com/display/GSHADERS/Moonshine+-+Shaders+and+Procedurals+for+Moonray?path=/mat/DwaBaseMaterial1' |
Beta Was this translation helpful? Give feedback.
-
I haven't been following the convo before this so I'm not sure what build process you used. But MoonRay needs to be built against Houdini's libraries in order to work in Solaris. Houdini is able to see the MoonRay assets but, as you've noticed, the parameters are all empty since MoonRay isn't actually loaded. I haven't touched MR in a long time, but I did write a build guide for CentOS 7 and Houdini 19.5. Things may be quite different now though. I'm not even sure it will build with Houdini 20 at all. BrianHanke#3 |
Beta Was this translation helpful? Give feedback.
-
It sure isn't! Definitely one of the most frustrating/annoying/complicated builds I've ever done. I'm not a pro dev by any means so that may not be saying much. The idea is that MoonRay comes with its own libraries by default, but in order to work with Houdini it needs to use Houdini's versions of those same libraries. So, you have to point the MoonRay build process to your Houdini installation. It's not that simple, but that's the general idea. |
Beta Was this translation helpful? Give feedback.
-
You've done great to get this far, you're at the final boss now. That guide is all I know on the topic, hopefully it's still at least a bit relevant even though MR and Houdini have been updated in the meantime. Good luck! |
Beta Was this translation helpful? Give feedback.
-
Ha Ha great analogy. Thanks Brian. I hope I do get there. It makes me wonder how on Earth you figured all this stuff out yourself?! |
Beta Was this translation helpful? Give feedback.
-
I suspect I may need to reinstall everything from scratch to get this working. The cruel thing is when I first open Solaris Moonray appears as an option but quickly disappears... never to reappear until I restart Houdini again. |
Beta Was this translation helpful? Give feedback.
-
I don't recall any segfaults when I was doing this. I remember the first thing I did to test the build was put a single cube in the Solaris scene and switch to MoonRay. It should render identical to Karma. If that works then all should be good. If not, there's a problem with the build or with environment variables. |
Beta Was this translation helpful? Give feedback.
-
I've restarted the build in case I missed some steps ( building against Houdini ). I've run into this issue...which has me stumped. [ 1%] Building CUDA object moonray/moonray/lib/rendering/rt/CMakeFiles/rendering_rt_optix.dir/gpu/optix/OptixGPUPrograms.ptx |
Beta Was this translation helpful? Give feedback.
-
So I started the process again and rebuilt Moonray without errors while pointing to the Houdini install and pxr-houdini folders as per Brian's instructions. Unfortunately in Solaris while Moonray is active showing any kind of geometry causes a crash. Does this error message from Houdini suggest a python mismatch? And if so should I update to python 3.7. I'm clutching at straws here :/ File "/opt/hfs19.5/python/lib/python3.7/importlib/init.py", line 127, in import_module |
Beta Was this translation helpful? Give feedback.
-
@mpjohn If you're using Houdini 19.5, it comes in two flavors: Python 3.9 or 3.7. Houdini 20 is 3.10 or 3.9 I think. I don't recall which version I used when building on CentOS, but I do remember that I had to install a different version and set it as the default. I assume it needs to match the Houdini Python. |
Beta Was this translation helpful? Give feedback.
-
I've build the latest Moonray ( 1.5.0.0 ) on Rocky Linux. So far so good. Now I've been trying to get it to work with Houdini for quite a while with no luck. I hoped the new version might work better. I've edited the houdini env file and the shaders appear in Houdini. I've also run the post build run once shader setup... Moonray appears in Solaris...until I try to render with it at which point the following 2 errors pop into the log..... Plugin HdMoonrayRendererPlugin is missing TfType registration Can anyone help me out please? I'm hoping it's some small thing I've done wrong...but even if it's a big thing...can you point me in the right direction?!! I have a hunch that Houdini packages could help but I've tried that it's not straight forward. Is this a question of the conflicking pxr packages between Moonray's version and Houdini's? I have installed rez - maybe that's the answer?! Any suggestions would be greatly appreciated. One other question...with the moonrayDCC plugins. Do I have to clone that? Or can I just use the folder from the installed Moonray directory? |
Beta Was this translation helpful? Give feedback.
-
Building against HoudiniIf I understand things correctly then there are 2 reasons we have to build Moonray against Houdini... (i) The python versions are slightly different What I've found is that when you follow the current unofficial instructions that pxrConfig.cmake in usr/local is a key file. By default it's 2.4kB but the edited "Houdini" version is smaller at around 1.8kB. If you swap the file before the build it won't work. I know you can later use symlinks to direct the build to the correct versions of the usd files but there must be an easier way. Surely someone out there can write out all the steps to make this work. I know it isn't easy. I've tried several times. But maybe it's time to prioritise this so that people can actually start using Moonray? |
Beta Was this translation helpful? Give feedback.
-
I've rebuilt Moonray against Houdini v20.0.625 - Py3.9 ( was that the best version to try?! ) [PluginDiscover] A prim adapter for primType 'GeometryLight' already exists! Overriding prim adapters at runtime is not supported. The last discovered adapter (UsdImagingGeometryLightAdapter) will be used. The previously discovered adapter (GeometryLightAdapter) will be discarded. Plugin HdMoonrayRendererPlugin is missing TfType registration No renderer plugins found! Check before creation. My hope is that because I'm a Houdini noob that I've done something wrong in loading the plugin. I would love to be able to get this working before I retire :/ |
Beta Was this translation helpful? Give feedback.
-
Here's a crazy idea. What if there were 2 versions of the source for Moonray. One for the standard build and one which uses the SideFX version of USD. Would that fix things so that people could start to use it without problems with a particular version of Houdini? https://github.com/sideeffects/USD Not sure how to do this of course because I'm not a developer. |
Beta Was this translation helpful? Give feedback.
-
Can anyone help me out with these errors....These are after I swapped out the pxrConfig.cmake etc and set up sim links to Houdini's versions of the usd files....Hard to know if I'm close or a million miles away from getting this to work :/ CMake Error in moonray/hydra/hdMoonray/src/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Warning at moonray/hydra/hdMoonray/src/CMakeLists.txt:11 (add_library):
Some of these libraries may not be found correctly. CMake Error in moonray/hydra/hdMoonray/src/adapters/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Error in moonray/hydra/hdMoonray/cmd/hd_cmd/hd_render/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Error in moonray/hydra/hdMoonray/cmd/hd_cmd/hd_usd2rdl/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Error in moonray/hydra/moonray_sdr_plugins/moonrayShaderDiscovery/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Error in moonray/hydra/moonray_sdr_plugins/moonrayShaderParser/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
CMake Error in moonray/moonshine_usd/lib/geometry/usd/CMakeLists.txt:
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
|
Beta Was this translation helpful? Give feedback.
-
I got rid of all the errors apart from this one by tweaking the pxrTargets.cmake file...anyone know how to fix this? CMake Warning at moonray/hydra/hdMoonray/src/CMakeLists.txt:11 (add_library):
Some of these libraries may not be found correctly. |
Beta Was this translation helpful? Give feedback.
-
gmake[2]: *** No rule to make target '/lib/libpython3.6m.so', needed by 'moonray/hydra/moonray_sdr_plugins/moonrayShaderParser/moonrayShaderParser.so'. Stop. |
Beta Was this translation helpful? Give feedback.
-
Hi, I'm sorry that you are having so many issues building Moonray for Houdini. It is definitely possible, but there are quite a few things that can throw it off in difficult-to-diagnose ways. Unfortunately it is very hard for me to tell exactly what is going wrong based on the error messages, but I can provide a few suggestions: I'd recommend using Rocky 9, and Houdini 19.5 with Python 3.9. We haven't tested building for Houdini 20. Moonray has to build with the same version of all libraries that it shares with Houdini. The libraries built by the Rocky 9 process should match Houdini 19.5. If there's any doubt, then /building/Rocky9/CMakeLists.txt shows the version of each package that Moonray uses. The file toolkit/third_party_libraries.json should list the versions of libraries that Houdini uses. You can compare the two to check for mismatches. To build for a different version of Houdini, like 20, you may need to update the versions in the Moonray build. Incompatible libraries may cause link errors, but may also just manifest as random crashes when using the app. In theory you could build against the actual libraries shipped with Houdini, rather than just trying to match versions. These are in dsolib and toolkit/include under the Houdini install. However Houdini does not come with a vanilla set of CMake configs for these libraries : toolkit/cmake/HoudiniConfig.cmake exists but will not be found or understood by Moonray's cmake. To get the correct version of SideFx's custom built USD, you need to use the repository at https://github.com/sideeffects/USD instead of https://github.com/PixarAnimationStudios/USD. You need to identify the right commit tag for the version of Houdini and USD, which should be shown in the github web interface. Replace the GIT_REPOSITORY and GIT_TAG fields in building/Rocky9/CMakeLists.txt (last section, for USD) before doing the dependency build. I provided a pxrConfig.cmake file for BrianHanke which should let you use the copy of USD distributed with Houdini. However, this is a bit of a hack : since USD seems to be causing problems, I'd suggest the above process of downloading from the SideFx site -- see if that works better. If you do use my hacked pxrConfig.cmake, make sure the env vars listed in README.txt are set up correctly. It shouldn't be necessary to do any symlinking to get the build working with USD : doing this might just partially fix the problem so the build process gets further but is ultimately broken. If the configs are set correctly, CMake should find the files where they are. I don't really understand why BrianHanke needed to symlink a bunch of libraries to get the plugin working : it seemed to work for him, but I'd be worried that it is covering up a deeper problem with the build. I'd need to know more about the system to understand what's going on here. Pre-existing installs of any of the dependencies could cause problems. The warnings like "runtime library [libosdCPU.so] in /lib may be hidden by files in: /usr/local/lib" are not ones I have encountered before, but sound like somehow libraries are installed twice in two different places. Again, there may be ways to work around this, but it is probably important to understand where the double installs are coming from. Mixing the Centos-7 and Rocky 9 processes could possibly cause this problem. A double install of USD caused by previously building Moonray with the default (non-Houdini) setup could cause problems : I would check there are no versions of USD left over from previous installs on the machine. "[PluginDiscover] A prim adapter for primType 'GeometryLight' already exists! ..." is a known issue that should not cause serious issues. "Plugin HdMoonrayRendererPlugin is missing TfType registration" sounds like either PXR_PLUGINPATH_NAME is not set correctly to include the path to hdMoonray.so, or that something is badly wrong with the USD installation (hard to tell which) "No rule to make target '/lib/libpython3.6m.so', needed by..." seems quite strange in a Rocky 9 build. The Centos-7 build is configured to use python-3.6 by default, but I can't think of a reason a Rocky 9 build would try to use it. |
Beta Was this translation helpful? Give feedback.
-
@mpjohn Did you see this build guide? Might be helpful. adro79#2 |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, I've been working on getting Moonray reliably built for Houdini over the past few days, and I'm beginning to doubt it's currently feasible with CMake. SideFX's fork of USD is made to work with their custom version of Boost for Houdini, where all the symbols are namespaced under I don't see a clear way to reconcile these differences without significant changes to the CMake files. While it's possible to achieve a successful build by following some of the suggestions made earlier in this conversation, it might technically work—but it'll be fundamentally flawed, and you're likely to encounter issues sooner or later. I'm curious to know how DWA is internally building Moonray for Houdini. It seems like it must be a work in progress and not yet ready for production use. |
Beta Was this translation helpful? Give feedback.
-
I've built Moonray several times. I've never been able to get it to work properly with Houdini or any other DCC app. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
Congrats to the release of moonray to the public !!!
I wonder if someone could do a howto get moonray to work with houdini.
I saw thet is already some stuff here:
https://github.com/dreamworksanimation/moonray_dcc_plugins
I guess I still have to compile the renderer?
Well just getting started ... hopefully some 'real wizard' is going to chip in.
Cheers
Beta Was this translation helpful? Give feedback.
All reactions