Ian wrote:Eeeeyeah. I was super skeptical first. I've been working on
Mango (now called, "Tears of Steel", the latest blender open movie project), and we're trying to do the whole thing with Cycles. When we started out, it was crazy-super difficult to actually get a good render. Fireflies all over the place, insane render times. It was a bit like the fluid sim. Checking YouTube, you see hundreds of videos of water pouring into wine glasses- and it works fine for demos like that- but if you try it on anything larger- good luck! Cycles was great at rendering out little glass trinkets and chessboards, but an actual
environment? Nope! But we've finally figured out how to work with it artistically, and the developers have been working like crazy getting stuff optimized and smoothing out the workflow. By the time the project's done, it might actually be production ready
For about 2/3 of the project, I would go home at night and do a project in Blender Internal, just to feel good about CG again, but I'm finally to the point where I'm occasionally using it for Dynamo, and by the time we're done, it might actually be my renderer of choice. Maaayyyyybe.
That said, it definitely helps to have a render farm at your disposal if you're trying to do animation type stuff. E'gads. And it still doesn't do interiors
all that great (Mango is almost all interiors!!) But it's getting there.
The biggest thing I had against it at first was that I couldn't use any of my old techniques- every single scene I had to poke at forever until I found something that worked. But stuff's gotten fast enough that my usual "colored ambient light and sun lamp (or 2)" thing works, and the light is behaving predictably (or, I've just learned more how to predict it? I dunno!) And fireflies hardly ever happen anymore!
Haha, I like the fluid simulation analogy. I don't think cycles actually falls into that category, but I can definitely see it having been teetering on the precipice of such a thing in the past. It's a path-tracer, though. As long as it is reasonably fast it WILL prove to be useful with blender, at least for still scenes. I am a bit skeptical of the results for an animation, at least a homebrew animation where you DON'T have access to a render farm - getting rid of all of the grain may be exceptionally painful for a complicated scene with a single small set of computers. It's definitely do-able, but you will likely have some extra "film grain" added unless you spend a lot of time on rendering the finished product - and nobody likes waiting to see their project (and eventually notice a small stupid mistake and having to re-render).
I used to not be much of a fan of path-tracers, but they have grown on me recently. Previously I preferred photon-mapping as a method of generating global illumination, but I think path-tracing has proven to be a better option for most things. You can bake more stuff with a photon map, and there are some things that can work a little nicer... The grain can be a bit easier to control, I think (though, really there are similar problems - you can just kind of blend everything into less harsh artifacts that might even prove to be more visually pleasing). Photon maps were also just kind of cool! I liked the idea, and still do...
Path-tracing definitely has some pretty big advantages, though. I think the biggest advantage is that they are so simple (basically you just shoot a ray into the scene, and shoot more rays to find illumination at surrounding sources to the point - you can make it a little more complicated by using bidirectional path tracing and metropolis light transport, but the principle remains the same)! They are easy to extend and mess with... The code can be very small and easy to read and understand. You don't *need* to implement a KD-Tree or something to get reasonable results with a path-tracer (well, you will still need a space partitioning data structure for the scene's geometry... I think Blender still uses octrees for that? Octrees are pretty swell... You will probably want to implement a KD-Tree for the photon map in order to find nearest neighbouring photons to any spot in the scene - it's not that complicated, but it is an extra layer of icky). From the little bit that I have played with cycles it looks like they are attempting to make it fairly extensible and robust. You can relatively easily modify the "shaders" that are executed during the rendering, and it is laid out in a manner which artists might be able to understand and learn to use relatively quickly. I haven't messed with it too much, but if it works how I think it should... It should be pretty darn flexible, and give the artist a fair bit of control if necessary, in a manner which is relatively easy to understand. Which is awesome!
Path tracers also kind of look awesome by default... They happen to give a nice solution to the rendering equation and as a result simulate light pretty darn accurately! The only problem is that you get a fair amount of grain and "fireflies" sometimes, at least with small render times.
Of course the grain and fireflies can kind of be dealt with... You can just render with different seeds and blend the images together, for instance... That should work decently... Maybe blender will have a feature to do this automagically in the future? I am sure there are probably people way smarter than myself working on cycles, and they probably know of some fancier tricks to solve these problems!
Switching between the renderers will suck initially, though. There is probably no doubt about that... Particularly if you are used to how illumination worked in the old one, and dealing with that. I think the biggest problem I noticed was the inconsistencies between the light sources in the internal renderer and cycles? The regular light sources kind of sucked in cycles, but using geometry which emits light worked really well... I probably just don't know how to use it!
I am surprised that you have found that cycles is sub-par for rendering interiors, though. Path tracers excel at rendering interiors - it's kind of what they are best at, I thought. Rendering an outdoor scene should be worse? Well, actually... The interior scene should render better in cycles than internal, I would have thought. What is so bad about internals with cycles? Are you getting too much grain? Dark patches (can happen with sharp corners, sometimes it just becomes really unlikely to hit these patches with light, so you end up with slightly darker patches that look a bit odd)? Does the lighting just work differently than you are used to, or is crummy in other ways?
Just wondering! Of course, you are probably looking at it from more of an artistic perspective than I am. Whereas I am like "it simulates light better, therefore better?"... Which isn't always the case for artistic purposes. In fact, often I think it may even be a bit of a hinderance, depending on what you want to do.