3
$\begingroup$

Is there a way to change the power of an emitter hitting a certain object? For example, if I had an emitter object with strength 5, and nearby had several other objects, could I set one of those nearby objects to treat light rays hitting it as twice as powerful, so that it would be hit for strength 10 while leaving the emitter as strength 5 for the rest of the objects?

$\endgroup$
  • $\begingroup$ The closest I can think of would be to plug your shader nodes into both sockets of an add shader at the very end. That would double all rays hitting the object though, not just the ones coming from a specific light. $\endgroup$ – PGmath Sep 23 '15 at 2:40
4
$\begingroup$

The closest thing I can think of is doubling the entire shader of the object you want to be more illuminated. This is done by adding the shader to itself. To do this plug plug your shader nodes into both sockets of an add shader at the very end of the node tree.

enter image description here

It produces the following result. The center ball uses the above technique while the other two use just the node group.

enter image description here

The disadvantage of this is that it doubles all rays hitting the object, not just ones from a specific emitter.

See this post and this post for more on the add shader node.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Excellent. I think I could probably deal with the other rays getting doubled by re-combining the passes in the compositor and clamping certain ones. $\endgroup$ – Drudge Sep 23 '15 at 2:59
  • $\begingroup$ @Drudge Great. I am working on another answer using fake lights too if you want to check that out in a few minutes. $\endgroup$ – PGmath Sep 23 '15 at 3:00
  • $\begingroup$ Sure, I remain interested. $\endgroup$ – Drudge Sep 23 '15 at 3:03
1
$\begingroup$

Another solution, which doesn't do exactly what you are looking for the way you describe, but can produce a similar result, is to fake a light source in the material of the object you want to be more illuminated.

To do this, take the difference of a normalized vector determining the direction of the fake light (it helps to use a normal node for this) and the geometry's normal, tweak the falloff with an "RGB curves" node, and use that as the factor to mix an emission shader with your normal shader nodes. I like to create a fake light node group (which I include in my startup blend) which takes the direction, strength, light color, and input shader.

enter image description here

Here is the node group. I also have included an exclude parameter which can be used to have a mask define areas of the mesh to not illuminate, just leave that at 1 if not used.

enter image description here

Here is the result, the middle ball has the fake light.

enter image description here

|improve this answer|||||
$\endgroup$
  • $\begingroup$ This also looks really interesting. Thanks for 2 great answers. $\endgroup$ – Drudge Sep 23 '15 at 3:18
  • $\begingroup$ @Drudge No problem! Due to their limitations, fake lights are usually just used for subtle rim light effects and the like, so if you can get it to work it's probably wise to use the other solution. $\endgroup$ – PGmath Sep 23 '15 at 3:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.