578 karma · joined May 9, 2015
[1] http://www.fxguide.com/featured/prometheus-rebuilding-hallow...
Btw, I also really enjoy reading your blog, keep up the good work. Looking forward to the day that you release the source of your renderer.
- Sony Pictures Imageworks open sourced Open Shading Language, Field3D, Alembic and OpenColorIO.
- Pixar opensourced OpenSubDiv
- Disney opensourced Ptex, BRDF Explorer, SeExpr and Partio
- Dreamworks open sourced OpenVDB
I wouldn't be too suprised if we would see an open source renderer within the next 10 years, especially if SPI is going to replace their in-house version of the Arnold renderer, as open source software has been extremely successful for SPI.
* Bidirectional path tracing and VCM, surely is nice, but you're absolutely fine with just path tracing. Artists have learned how do to avoid SDS paths and how to optimize their scenes for path tracing. It would require a lot of time to train artists to optimize their scenes for VCM and with the amount of diffuse noise (which is unavoidable) I'm not even sure if it's worth it.
* I doubt the subsurface scattering in Cycles is slower than Renderman as it only supports bicubic and gaussian profiles which are even easier to evaluate and sample than the approximate BSSRDF ;). Their profiles are extremely lacking (and I doubt it's enough these days), but SPI used bicubics and gaussians a few years ago [1].
* I absolutely can't imagine that Cycles doesn't have Environment Map sampling, which is something pretty basic and explained in PBRT. Sure, Cycles probably doesn't have an implementation of "Portal-Masked Environment Map Sampling" by Bitterli, Novak and Jarosz yet, so I'm sure Renderman is better at it, but Cycles is decent at it.
* Same for arbitrary geometry lights, but I'm sure Renderman does a better job at it (although Pixar is probably limited by Solid Angle's patents on importance sampling quads and other stuff, Cycles doesn't have to deal with patents).
* AFAIK Cycles has a state of the art hair shader, but it seems to lack the importance sampling scheme by Eugene d'Eon.
I absolutely agree with you that Renderman is a more complete and faster renderer, but Cycles is absolutely amazing if you keep in mind that it was completely developed by a small team of hobbyists. Cycles isn't meant for production rendering, but it's amazing for hobbyists.
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!
Denotational semantics are horrible in my opinion, but I really like operational semantics (especially structural operational semantics and natural semantics), they still consider a program as a single mathematical object, but like Hoare logic it also tracks the state before and after each statement. It's really easy to work to with (just apply rules), but sadly it's a bit less powerful than Hoare logic, as you can't infer things that hold in general, you can only reason about specific begin states.
http://kesen.realtimerendering.com/sig2015.html
My favorite paper this year is "The SGGX Microflake Distribution" by E. Heitz et al. Sadly there aren't many papers on rendering this year.