dracwyrm / gentoo-ebuilds

Gentoo Linux ebuilds for Blender and dependency work.
8 stars 4 forks source link

Pixar Renderman for Blender. #27

Open dracwyrm opened 8 years ago

dracwyrm commented 8 years ago

This is kind of a two step process.

First we need the plugin: https://github.com/bsavery/PRMan-for-Blender I was thinking of making it a separate ebuild.

Then Renderman: https://renderman.pixar.com/view/renderman

Relevant link: http://www.blendernation.com/2016/07/20/pixar-renderman-21-ships-pixar-shaders/

Though, the tarball needs to be downloaded by the person directly. You need to register for the non-commercial license.

redchillipadi commented 8 years ago

This is a cool idea, there are plenty of alternate renderers that people are interested in too, see https://www.blender.org/download/external-renderers/. If we also add LuxRender we could close bug 491198

Downloading the tarball directly is ok, we can give instructions similar to dev-java/oracle-jdk-bin.

dracwyrm commented 8 years ago

Yeah. It would need to be similar to oracle java. I initially had that in mind when I read the licensing.

Lux is an external app and Gentoo really doesn't like it when you have a use flag that pulls in an app, because the user would expect that feature to be enabled. Lux needs to be added manually in Blender settings.

The Renderman ebuilds can't have a use flag in Blender either, unless adding the plug in auto enables it? I will need to look at that.

But, I personally think it's incredible of Pixar to release the whole package that they use with all the shaders. This is seriously cool for a company to do.

redchillipadi commented 7 years ago

I have created a new branch for this.

The process requires a lot of manual intervention.

# emerge blender
(go to the renderman site, log into the forum, then download the renderman-installer rpm and save it to /usr/portage/distfiles)
# emerge RenderMan-Installer-ncr
# /opt/pixar/RenderMan-Installer-ncr/RenderManInstaller
(Log in using the forum username and password and select at least RenderManProServer-21.2)
# emerge PRMan-for-Blender

I am able to install renderman and the PRMan-for-Blender plugin.

When loading the plugin blender emits lots of messages similar to RNA_def_property_ui_text: 'rmantree_choice' '' description ends with a '.' !

After loading the plugin, RenderMan is listed as an available engine, but when I select it Blender quits with:

blender(BLI_system_backtrace+0x30) [0x14324d0]
blender(uiItemFullR+0x527) [0xc30c97]
blender(UILayout_prop_call+0x4b) [0x139841b]
blender(RNA_function_call+0x12) [0x12ac8c2]
blender() [0xe3cdd3]
/usr/lib64/libpython3.5m.so.1.0(PyObject_Call+0x6a) [0x7efef283d9da]
/usr/lib64/libpython3.5m.so.1.0(PyEval_EvalFrameEx+0x23f7) [0x7efef28f7e57]
/usr/lib64/libpython3.5m.so.1.0(+0x129d3b) [0x7efef28fed3b]
/usr/lib64/libpython3.5m.so.1.0(PyEval_EvalCodeEx+0x23) [0x7efef28fee13]
/usr/lib64/libpython3.5m.so.1.0(+0x94539) [0x7efef2869539]
/usr/lib64/libpython3.5m.so.1.0(PyObject_Call+0x6a) [0x7efef283d9da]
blender() [0xe3d50e]
blender() [0x139717f]
blender(ED_region_panels+0x34e) [0xd205ee]
blender() [0xa596bb]
blender(ED_region_do_draw+0xa47) [0xd1f5b7]
blender(wm_draw_update+0x6da) [0xa30e9a]
blender(WM_main+0x28) [0xa2c3e8]
blender(main+0x407) [0xa0bbf7]
/lib64/libc.so.6(__libc_start_main+0xf0) [0x7efee9d92620]
blender(_start+0x29) [0xa28189]
BLI_assert failed: /var/tmp/portage/media-gfx/blender-2.78/work/blender-2.78/source/blender/editors/interface/interface_layout.c:1388, uiItemFullR(), at 'but->str[0] == '\0''
Aborted

There are a few smaller issues: The licensing of the plug in needs to be clarified - the code was forked from a repository which does not specify a license. There is a QA issue with non-stripped binaries in the RenderMan installer. There is no manifest yet

redchillipadi commented 7 years ago

I thought the descriptions ending in . might have been fixed in subsequent commits to the plugin since the release archive was packaged, but it turns out I was wrong. Filing a bug report upstream.

dracwyrm commented 7 years ago

Good work! I'll have a look at things later. Been busy. We don't need metadatas and manifests in private repos, or worry about QA yet. :P

redchillipadi commented 7 years ago

I have tracked down the crash in blender an also submitted a pull request for that upstream. So I am now able to render the default cube with RenderMan in Blender.

dracwyrm commented 7 years ago

That's really cool! Can't wait to try it out.

redchillipadi commented 7 years ago

I have updated the ebuild with the appropriate patches so you should now be able to give it a go.