
Intro to RenderMan for Blender - mariuz
https://community.renderman.pixar.com/article/906/introduction-to-prman-for-blender.html
======
jetskindo
I know everyone is excited about this but I would like to see the benefits of
using it over cycles.

So far I must say cycles is pretty great

~~~
joeld42
Cycles is hard to use for animation because it is very noisy, it's fast to get
an initial image (great for tweaking) but it's slow to get a noise-free image.
Also this includes pixar's "denoising as a post process" which is really
amazing (and might even be applicable to cycles renders).

Cycles shading graph is very limited (but well chosen) compared to the
flexibility of Renderman Shading Language.

Renderman's subpixel shading is just amazing, so getting crisp, antialiased
renders even with fine detail is automatic, whereas cycles might require
tweaking the settings or really cranking up the sample rate.

Cycles struggles and has memory limitations on large (even not so large)
scenes.

Renderman produces very good motion blur without much performance hit, which
is critical for integrating with real-world footage.

Renderman has a lot of features (similar to plugins) to integrate with
external tech (e.g. you could plug in a custom hair generator step), which is
critical for production.

Renderman has a lot of "scalability" features like caching indirect lighting
into brickmaps, or loading large sets of tiled textures, that cycles (or even
blender) just don't support.

Also, renderman has been used in production for decades, so a lot of places
have built up large libraries of tricks, shaders or tools that work with
renderman that they can use.

Renderman is well integrated with many render-farm technologies, so if you're
working on a large animation there are some great option. Of course there are
ways to do this with Cycles, too, but they are generally less mature and lack
some production features.

With all of that said, cycles is still an amazingly powerful renderer, and
completely free (not just free to use). You don't have to generate and install
a license file to use Cycles, and if you want to tinker with the source code,
you can do so! That's not going to happen with renderman anytime soon...

~~~
332451b
For a fair comparison we should compare PRMan's RIS with Cycles though, not
REYES. RIS is what Pixar are focusing on and rendering their movies with now.

Yes, REYES is great at subpixel shading, rendering fast motion blur, using
brickmaps with indirect light, and using very little memory for detailed
displacement. But with RIS all those things are gone. PRMan's implementation
might still be more efficient, I don't know, but with the switch to path
tracing they are definitely giving up various advantages that REYES had.

~~~
berkut
Exactly, with the move to RIS, they're in pure path-tracing now, and they're
still behind Arnold generally from a performance perspective.

Displacement and subd performance is still very impressive (compared to
Arnold), but motion blur (especially deformation for curves and triangles) has
a noticeable overhead now.

------
manishsharan
Can someone please advise me how to get started with this stuff? I have been
developing enterprise applications which is boring to all kids, including my
nieces and nephews. I wish I could something with Blender etc. to impress
those kids. I have found the documentation to be too intimidating for an
absolute newbie. I am looking for a dummies guide for rendering. I am not
looking to change careers; just want to pursue this to get an understanding
and hook those kids into programming.

~~~
solidangle
If you're interested in writing a renderer yourself (which is obviously way
cooler than using some tools), I'd recommend first picking up either
"Fundamentals of Computer Graphics" by Shirley and Marschner or "Computer
Graphics: Principles & Practices" by Foley and Van Dam. Once you understand
the basics of computer graphics and especially of shading and ray tracing, I'd
recommend picking up "Physically Based Rendering: From theory to
implementation" by Pharr and Humphreys which is an excellent book that
explains the State of the Art of photorealistic rendering. Once you understand
how physically based rendering, path tracing, BSDFs and all that good stuff
works you're ready to write your own rendering (or to implement a new SIGGRAPH
paper in the framework provided by the book). It's a lot of fun writing your
own renderer and you'll produce some beautiful pictures.

~~~
lelandbatey
As someone who has dabbled, I have to recommend the "Business Card sized
Raytracer"[0]. Learning how it worked, modifying it, trying to make it faster
or sharper, display different shapes, etc. may serve to whet one's appetite on
the subject.

First thing I recommend is trying to get it to show your name[1] instead of
the original authors initials.

[0] -
[http://fabiensanglard.net/rayTracing_back_of_business_card/](http://fabiensanglard.net/rayTracing_back_of_business_card/)

[1] - [http://lelandbatey.com/anim07.gif](http://lelandbatey.com/anim07.gif)

------
mkesper
RenderMan is now free for all non-commercial purposes, including evaluations,
education, research, and personal projects. The non-commercial version of
RenderMan is fully functional without watermark or limitation. For further
details please refer to Pixar's Non-Commercial RenderMan FAQ.
[http://renderman.pixar.com/view/DP25849](http://renderman.pixar.com/view/DP25849)

So this is non-free.

~~~
VikingCoder
You can also post renderings / videos you make to sites like YouTube and
legally make money off of advertising.

~~~
remotebug
Indeed, that is explicitly permitted. Weird how they consider it indirect.
Reading through 11) I thought indirect meant other things.

~~~
protomyth
Its indirect to their business model, and will just mean more talent ready to
go for those buying it for movies / tv production.

------
julius
Any links to a good comparison of RenderMan vs. Cycles? Performance would be
nice to know.

------
yarrel
Blender is winning.

------
imaginenore
It gives me no reasons to use it over the standard Cycles renderer.

~~~
eggy
Not even for all of the available shaders, books, tutorials and other
resources made available for it over the years? The analogy I make is a
programming language that is so-so, but has a hundred relevant, useful
libraries vs. the technically better language with hardly any libraries.
Cycles has the basic building blocks to create a library of pre-defined
shaders, but Renderman has over 25 years of history, and tons of RSL examples.

~~~
imaginenore
Show me just one really cool thing that can be done with Renderman and can't
be done with Cycles. Show off that 25 years of history.

~~~
ykl
Any movie by Pixar, Industrial Light and Magic, Double Negative, Framestore,
Weta, etc.

Alternatively, a brief and by no means comprehensive list of things I've found
to be better in Renderman versus Cycles:

* Bidirectional pathtracing and VCM for fast, accurate caustics and SDS (specular-diffuse-specular) illumination without fireflies. [0][1]

* Extremely efficient subdivision surfaces and displacement. In Cycles, there is a performance penalty for subdivs and displacement. In Renderman, there is almost zero overhead. [2][3]

* Significantly faster subsurface scattering [4][5]

* Support for OpenVDB volumes, and much faster volume rendering/scattering/etc. [6][7]

* Importance sampling for emissive effects, such as explosions and flames. Think candles with actual fire that don't firefly! [8]

* Importance sampling of HDR maps (basically, prevents fireflies when using HDR maps) [9]

* Much better memory efficiency. Renderman is designed to handle literally hundreds of gigs of stuff in memory going in and out of core all the time. Don't have a link for this one, since this comes mostly from experience with both renderers and having used Renderman in a large production studio.

* Disney "principled" BSDF [10]

* Arbitrary geometry lights, with importance sampling [11]

* Better/faster hair rendering and hair shaders [12][13][14]

* The Denoiser is PRMan 20 is legitimately magic. [15][16]

Generally, there isn't necessarily any particular feature that Renderman has
that Cycles is outright missing, but almost everything in Renderman is a lot
faster and more optimized (as seen in the link list below, a lot of the
research on making stuff like subsurface scattering and hair and whatnot
extremely fast comes from Pixar and the Renderman devs/researchers in the
first place). On the flip side, Cycles has a usable GPU mode, whereas I doubt
Renderman will ever get a GPU mode anytime soon. Cycles is really pretty
great, but having a volunteer team versus a dedicated, paid team that has to
support not just Pixar's production studio but also a ton of large VFX houses
produces a much faster development pace and a much higher incentive to
optimize the crap out of every inch of Renderman.

Disclaimer: I now work for a different production renderer team at a different
studio (some consider us to be a rival to Renderman, we don't see it quite
that way), but I've worked at Pixar before.

[0]
[http://renderman.pixar.com/resources/current/RenderMan/PxrVC...](http://renderman.pixar.com/resources/current/RenderMan/PxrVCM.html)

[1] [http://cgg.mff.cuni.cz/~jaroslav/papers/2012-vcm/2012-vcm-
pa...](http://cgg.mff.cuni.cz/~jaroslav/papers/2012-vcm/2012-vcm-paper.pdf)

[2]
[http://renderman.pixar.com/view/displacements](http://renderman.pixar.com/view/displacements)

[3]
[http://graphics.pixar.com/opensubdiv/docs/intro.html](http://graphics.pixar.com/opensubdiv/docs/intro.html)

[4]
[http://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf](http://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf)

[5]
[http://graphics.pixar.com/library/PhotonBeamDiffusion/paper....](http://graphics.pixar.com/library/PhotonBeamDiffusion/paper.pdf)

[6] [http://www.openvdb.org/](http://www.openvdb.org/)

[7]
[http://renderman.pixar.com/resources/current/RenderMan/rfmOp...](http://renderman.pixar.com/resources/current/RenderMan/rfmOpenVDB.html)

[8]
[http://graphics.pixar.com/library/MISEmissive/paper.pdf](http://graphics.pixar.com/library/MISEmissive/paper.pdf)

[9]
[http://renderman.pixar.com/resources/current/RenderMan/PxrSt...](http://renderman.pixar.com/resources/current/RenderMan/PxrStdEnvMapLight.html)

[10]
[http://renderman.pixar.com/resources/current/RenderMan/PxrDi...](http://renderman.pixar.com/resources/current/RenderMan/PxrDisney.html)

[11]
[http://renderman.pixar.com/resources/current/RenderMan/risLi...](http://renderman.pixar.com/resources/current/RenderMan/risLighting.html#shapes)

[12]
[http://renderman.pixar.com/resources/current/RenderMan/PxrMa...](http://renderman.pixar.com/resources/current/RenderMan/PxrMarschnerHair.html)

[13]
[http://graphics.pixar.com/library/DataDrivenHairScattering/p...](http://graphics.pixar.com/library/DataDrivenHairScattering/paper.pdf)

[14]
[http://graphics.pixar.com/library/ImportanceSamplingHair/pap...](http://graphics.pixar.com/library/ImportanceSamplingHair/paper.pdf)

[15]
[http://renderman.pixar.com/resources/current/RenderMan/risDe...](http://renderman.pixar.com/resources/current/RenderMan/risDenoise.html)

[16]
[https://renderman.pixar.com/view/denoiser](https://renderman.pixar.com/view/denoiser)

~~~
imaginenore
I'm pretty sure every movie company you named could have rendered the same
thing in Cycles just fine. You still can't name a single important thing that
can't be done with Cycles.

Speed is good, but you cherry picked some niche thing that's probably faster
than Cycles (which you haven't provided evidence for). That's a silly
argument.

EDIT:

Thanks for the updated post, much more substance.

~~~
solidangle
I'm pretty sure you can't.

Let's say you want to render realistic skin using Cycles. You can't, the only
BSSRDF profiles that Cycles offer are simple bicubic and gaussian profiles,
these wouldn't work for rendering realistic skin. Cycles doesn't even offer a
simple dipole. Renderman on the other hand offers a dipole, it offers the
state of the Photon Beam Diffusion, it offers Pixar's recent approximate
BSSRDF, which is almost as accurate as PBD and is as easy to compute as a
gaussian or a bicubic profile. So you'd have to implement your own BSSRDF
shader, which is only doable for large studios such as Weta which have their
own R&D department.

So let's say you want to render hair. You can do this with Cycles, but their
importance sampling code is not state of the art (last time I checked), which
means that you can probably expect double the amount of noise in Cycles. You
could still use this for rendering, but computing time is quite limited
(especially if artists want to compute previews). You'd either have to
implement your own hair shader, or you'd have to purchase a ton of extra
hardware.

Let's say you want to render a scene with tons of triangles and textures, you
probably won't be able to do that in Cycles. They don't use special tricks for
quantizing those triangles in the memory. Their code for caching textures
(sometimes multiple terabytes for a single scene), is also not as good as
Renderman, especially when using the GPU (a GPU isn't very good at constantly
streaming terabytes of data into it), which means that your texture date
either needs to be limited, or you'd need to throw a lot of rendering machines
at it.

Cycles can do most stuff that Renderman (or Arnold) can, but that's not the
point. If you'd pay me to work on a renderer for you fulltime for a year, I
could produce a feature complete renderer, but it won't be optimized. The code
won't be optimized, but probably more importantly the ray intersection code
and the importance sampling code won't be optimized, which means that renders
will be slow and noisy. Pixar has a whole team working on optimizing their
code and whole team of researchers working on improving the importance
sampling. Cycles is made by hobbyists who are doing an excellent job (Cycles
is an amazing renderer for amateur users), but it's just not in the same
ballpark as Renderman or Arnold.

Cycles is an absolutely amazing renderer, but it just lacks a lot of stuff
that you'd during production of feature movies. If you want to use Cycles for
your own use I can absolutely recommend it, it will have everything you need
and it's open source!

~~~
332451b
Just one nitpick, Arnold supports the same BSSRDF profiles and has been used
for realistic skin rendering in movies. The gaussian profile is actually
suitable for rendering realistic skin, by using a combination of multiple
gaussians you can very accurately match measured human skin profiles.

~~~
solidangle
Yeah, such profiles can certainly be used for skin rendering. I know that SPI
used the method you mentioned on a few movies. There will be visible flaws
though. The skin and especially the lips will look too waxy when using
gaussians or bicubics. Weta Digital used Quantized Diffusion on Promotheus for
this reason [1]. Pixar has an upcoming talk on a simple, yet highly accurate
BSSRDF profile this SIGGRAPH, so let's hope the folks at Blender will
implement that in Cycles.

[1] [http://www.fxguide.com/featured/prometheus-rebuilding-
hallow...](http://www.fxguide.com/featured/prometheus-rebuilding-hallowed-vfx-
space/)

