Cycles vs Blender - Bounced light vs indirect lighting

Hello blender world!

This is a question for those Cycles nerds out there. I know very little about cycles, and I am trying to learn more and more.

I have been recently trying to switch from the internal render system to Cycles. Now, I realize cycles’ strengths when it comes to stuff like architectural or industrial visualization, but I come from the world of animation, which often requires more tricks and workarounds, most of which cycles does not have yet.

Case in point: I was trying to light a scene in cycles using bounced lighting. Now ignore the noise of the renders… while a problem, that’s the not point of this post.

This is an example scene I will be using to demonstrate my problem. The scene is lit from a single sun lamp directly above, through a small whole in the ceiling of the cube. Rendered with a sun power of 3:

Which is pretty unusable. Now in Blender Render, I would use a handy feature called indirect lighting, that while completely inaccurate and fake, has a lot more control. I could simply boost the indirect lighting feature to 8 or 10, or something ridiculous.

I next tried boosting the sun lamp to a high power. This is the same render with a sun power of 100:

Now besides the noise, this is a lot closer to what I’m looking for. The problem here, of course, is that the white spot where the sun actually is hitting the ground is a white peak on the image, reaching values past 15-16, which creates a huge frustration for compositing.

Now an obvious solution would be to set another lamp, at low values, where the sun lamp hits the ground.

This gives an image much closer to what I’m trying to achieve, but unfortunately unusable for animation. It would be extremely difficult to animate the light moving around the scene, and the calculation would be sketchy.

So there’s my problem. Is there an easy way to boost the power of bounced lighting in cycles? Because it is an extremely important feature for animation.

Here is a ‘real world’ example of this problem. Cycles vs Blender internal with Indirect lighting. Pay attention to the bounced light on his face.

So as you can tell, this is a bit of a problem, especially for animation. Is there an obvious solution to this problem that I am missing, or is just that Cycles will need a bit of time before it is actually adaptable for full projects?

SUMMARY: Does Cycles have a controllable boost for bounced lighting, similar to the ‘factor’ control in Blender Internal’s indirect lighting? Because it if doesn’t, it needs one.

I’m interested in finding a solution to this problem, so thanks for your time reading this longer post!

I thought a setup like this might offer a boost capability. Basically take the light path and if it is a Reflected Ray it will be multiplied by 1.0 else 0.0 (False * 1.0 = 0.0…right?). Then route that result to a multiply node to give some control over the boost. There is some small boost occurring in the attached image but not as much as I had hoped for, even with a strength of 1,000.

Attachments


Hey Atom,

Great idea, and I wouldn’t have thought of that. However, I think the light path input must be being used incorrectly, somehow. When I tried your idea, the second I plugged in the reflection ray input everything went black. Double check and see if the light you see in your scene isn’t coming from the world? or maybe AO not turned off entirely?


Yup, no idea here. Maybe the light path node is used on mesh materials? idk. To the wiki, Batman!

EDIT:

After looking on the wiki a little bit, I don’t think that the Light Path node is able to be used on lamps. This page is all about it:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Light_Paths

I then debugged it using colors.


As you can see, the top is using the light path input on the lamp, and the bottom is using the light path input on the plane the sphere is resting on.

So, my humble conclusion is that light path input node isn’t meant to work on lamps. Is that theory busted, then?

Even if such boost works - you’re increasing intensity of several reflected (right, they now belong to the plane not lamp) rays whereas what you want is to increase amount of them in certain direction. Result would be grain.

Here’s a setup that allows to use two different shaders for directional light (first bounce) and reflected (all the rest bounces)-


rendered-


Each has its own Strength parameter.

Ko, that’s the solution! Thanks!


I’m impressed by the ability, as you demonstrate, to even finely control the color of the reflected light. In the render above, I reddened it slightly to simulate a subsurf reflection.

It would be great to know a little more about some of these cycles inputs, I guess. What does the Ray depth number technically refer to? If I set in 2, would it only put in on the second bounce?

Now, as Eppo said, to figure out how to deal with the grain. :stuck_out_tongue_winking_eye:

Thanks Ko that is a nice solution. Increasing the value in the Greater Than node allows you to visualize what bounce has what effect in the scene.

My suggestion is this: “forget about ‘versus Blender (BI).’”

You have two (really, three, if you include OpenGL) built-in rendering alternatives in Blender … and you have a very nice compositor. Every render will use the same geometry, the same camera calculations, the same library/linking system and so forth. All of these are tightly integrated, without resorting to exports to external renderers (which Blender can also do). Therefore, you can, and I think that you should, work with every available approach that will get you where you want to go.

For instance:

  • OpenGL is great at doing what it does … which is, “very fast!” Not only can you use it to crank out previews, but you can also use it to create the foundation of the finished frame, using the GPU if available in the classic way. It can do a lot of the “heavy lifting” of creating a base-image – covering a long distance, very fast – upon which the other two techniques can then be used to “add frosting.”
  • Blender Internal is a good implementation of a classic renderer … ray-traced and otherwise.
  • Cycles is a completely different approach to the same problem, which uses GPU hardware in a completely different way as a math co-processor. It’s particularly good at ambient-lighting calculations, filling a room with soft, evenly distributed light.

We’re starting to see more discussions and tutorials and examples of how this multi-renderer workflow can be applied to a project. I’m sure that we’ll see many more.

Sorry to resurrect a dead thread, but I’m interested in what sundialsvc4 is talking about. Could anyone point me in the direction of a multi-renderer workflow? I’d love to see some examples of how to bring the renderers together. Thanks!