New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GafferAppleseed: New renderer #1833
Conversation
Brilliant! I'm very much looking forward to trying this. I've marked it as on hold temporarily, because from the looks of things I need to update gafferDependencies to include the equivalent cortex PR before Travis will be happy. We're actually about to push out a new Gaffer release for production use, so I'll hold off on doing a detailed review/merge until that is out of the way, as this seems big enough to warrant a bit of care. |
I agree, doing the release and merging later is a good plan. |
79c766e
to
eb6f971
Compare
Hi Est, I'm just finding some time to start to look at this now. The new IPR feels much more responsive and moving objects around seems to be working well - nice! I've hit one problem, which is that the images that are auto-generated for the tutorial in the documentation now all come out black. This seems to be because I didn't use an AppleseedOptions node to specify which environment light to use, and the new backend doesn't pick one automatically in the same way the old one did. If I use an AppleseedOptions node to specify the right environment, it does work, but I have to restart the IPR for it to take effect. Since following the tutorial will often be the first experience people have of either Gaffer or Appleseed, it'd be great to get this sorted so it works smoothly - either without needing the option, or without needing a restart. Do you think one of those is doable? Cheers... |
I didn't like the automatic environment light selection of the old backend. It seemed like a good idea I'm going to fix the environment updates. Should be easy. Thanks for looking into the PR! |
578ce8e
to
326a1ac
Compare
Environment updates should be fixed now. |
326a1ac
to
451be43
Compare
Hi Est, https://github.com/johnhaddon/gaffer/commits/newAppleseedBackendWithTweaks I've got the gafferDependencies project updated with the latest Cortex/Appleseed combo, and am in the process of uploading the binaries for them, so hopefully we'll be in a position to get this one merged soon too. |
Thanks for the fixes. I added a commit here including them. |
Thanks Est, and sorry it's taken me so long to look at this again. I've done a bit more testing and run into a crash which seems to be repeatable using the following steps :
Here's the stacktrace :
Any ideas? |
I couldn't reproduce this crash, using my own dev build or building gaffer using the prebuilt dependencies. I tried in two different computers, one using Fedora 23 and another Centos 7. I can't see anything in the stacktrace that could cause a crash. |
Hi Est, |
Yes, that fixed the crash. I tagged a version that we can use for the gaffer releases: https://github.com/appleseedhq/appleseed/releases/tag/1.5.2-beta. |
Nice one - thanks! I'll start getting things together. |
Great, thanks! I didn't do the ObjectInterface changes yet. I was planning to do the same you did, returning true |
That sounds like a plan. I'm aiming to get this PR merged this afternoon - just uploading a new dependencies tarball now, then I need to update the docs to include the extra step for the environment light, and then I think we're good to go? |
Actually, I'm seeing 3 failing tests :
On the subject of tests, I did the testing for the InteractiveArnoldRender node using a base class for the test so it could be reused for other interactive renderers - it'd be nice to use that for Appleseed too at some point. |
I'll look into the failing tests after work. |
Great - thanks. I also just noticed that the interactiveRenderMaxSamples option isn't assigned to any layout section, so it appears at the top of the UI. Would be nice to tuck that away somewhere appropriate. |
I'll fix that too. I wanted to hide interactiveRenderMaxSamples from the UI. For now it would be an internal option What is the best way to hide an option? |
The best way to hide something from the UI is to disable the widget with a |
I've pushed a branch which has my tweaks for the https://github.com/johnhaddon/gaffer/commits/newAppleseedRendererTweaks If you could cherry-pick them over to your PR that would be handy, but I can deal with it if not... |
Yes, I'll merge your commits, no problem. Hiding the widgets does not seems to work: File "/home/lemans/Devel/gaffer/gafferDependencies-0.29.0.0-linux/python/GafferUI/PlugLayout.py", line 372, in createPlugWidget |
It sounds like you're applying the metadata to the child (value) plug rather than the parent plug? I think this commit is what you want : |
This is necessary when using the new Appleseed renderer backend.
… max samples option.
…ed.cli was doing it).
All tests pass now and I think the other issues should be fixed too. |
Thanks Est, could you cherry pick over johnhaddon@57282c1 as well? I think that should get the travis tests passing... |
Done |
Thanks! |
I just realised that I've added in this PR and in the Cortex PR the -DAPPLESEED_USE_SSE The flag can probably be removed from both PRs, it does not seem to change anything in appleseed's ABI (I'll double check that), but it would be nice if we could have SIMD optimizations. Would it be possible to update the appleseed build to use the SSE flag? Here's the cmake option needed: Thanks! |
I've rebased and merged via the command line to get rid of the |
Great! Thanks!!! |
This PR depends on ImageEngine/cortex#520.