View Full Version : Lighting per surface Question

08-07-2005, 12:33 PM
Is there a way to change how a light affects multiple surfaces of an object differently without using diffuse, luminance, etc.

similar to each object/light having the option to include/exclude other lights/objects except it would be on a surface basis.

"Surface1" will use 50% of "distant_light"
"Surface2" will use 75% of "distant_light"
"Surface3" will use 66% of "distant_light"

another example:
i have a house with multiple rooms as one object. each room has its own surface. is it possible with one light to illuminate each room differently?

does this make sense?
if not i will try to post visual examples.

Thanks for any help! :thumbsup:

08-07-2005, 01:13 PM
There's no way at the moment to do this without post production passes, but I think this could be done if someone were to write a shader to do it... Though I'm not even a beginner on the sdk.

08-07-2005, 01:32 PM
There's no way at the moment to do this without post production passes, but I think this could be done if someone were to write a shader to do it... Though I'm not even a beginner on the sdk.

Thanks Dodgy!
maybe i'll add this to the never ending feature requests :deal: for the LW dev team.

08-07-2005, 02:19 PM
Worley Labs G2 plugin for LightWave has this kind of per-surface lighting control.

08-07-2005, 02:31 PM
what about the BRDF shader?
it's been in for a few years and looks like it will do what you need........ :lwicon:

08-07-2005, 03:11 PM

On second look, BRDF probably is my best option, i'll have to play with it some more.

But it appears to ignore the light intensity settings in the light properties and assigns all lights in the scene to 100%. i have not done any test renders so this is just my guess.

Thanks for the tip!

08-08-2005, 12:19 AM
Some things can be done using gradients set to distance and nulls to get shading/lighting effects per surface. :)

08-08-2005, 07:20 AM
Thanks splinegod i'll give that a try :thumbsup:

08-08-2005, 11:27 AM
No problem. Ill be interested in seeing what you come up with. :)

08-08-2005, 02:30 PM
i have 4 distant lights evenly lighting the walls and floor and all set at 100%.

Gradient Test
i have a Z-distance-to-object gradient in the diffuse channel for each room/surface.
in the BRDF shader i adjust how much i want the lights to affect each room/surface.

i am also using the ambient_occlusion shader.

I'm currently trying to add controlled ambient lighting to multiple rooms in a house and i've gotten (so far) the best results by using distant lights. then i build from that with area lights to try to simulate the actual physical lighting (light bulbs, etc).

The problem comes in when i want different ambient lighting in specific rooms which are in the same layer. But each room has a named surface. I also want any objects in the room to be lit the same.

well, back to work playing with the BRDF shader. :compbeati

Thanks guys for the help! i hope all this makes sense. :)

edit- sorry the attachments are a bit messed up :confused: -edit

08-08-2005, 04:08 PM
I'm probably missing something, but why don't you just render three separate times with three separate ambient light intensities, and then composite them later?


08-08-2005, 04:32 PM
BTW, I forgot to mention that when I want different "ambient" lighting in different rooms, I usually just stick a Point light about where an overhead light would normally be in the room, and adjust its intensity to get what I want (usually pretty low, 5-20%). Or, a couple of them in the corners. I guess I'm still a little confused as to why you're playing with the lights rather than the surfaces (diffuse and luminosity settings, specifically).


08-08-2005, 05:17 PM
Mr_Jones here (i'm at home),

sorry if the three images are confusing. they are not the project that i am working on, just tests (im not sure if im allowed to post the images yet). im working on an entire house made from blueprints with more than three rooms. at this point i would like to avoid compositing (although i might be doing it anyway).

i've tried using point lights but when the shadow is turned off (to use as ambient light) it affects the rooms around it. i've also tried using falloff.

I thought it would be easier to only worry about a shader (BRDF) on each surface then to mess with the diffuse channels of multiple objects. but maybe using the diffuse channel would be easier, i'll experiment with that tomorrow.

Thanks :D

PS. sorry if im confusing people with multiple usernames, that will change soon.

08-08-2005, 06:18 PM
I guess my point is that light COMES from somewhere. It has to have a source. The only alternative is luminosity, where the surface/object itself emits "light".

So, in a "real" house, light comes through the window, or from track lighting, or from an overhead light, or from a floor lamp, or from a luminescent mold, or from a phosphorescent rock collection, or from a bedside lamp, or from a moonlit lagoon, or SOMEWHERE. The point is to simulate the actual sources of light using the variety of Light types in LW.

The whole idea of surfaces is to make them approximate real life. Surfaces which absorb most of the light cast upon them have a low diffuse level. If they glow unto themselves, they have luminosity.

Sorry if I'm being obtuse here, but LW spent a *lot* of time simulating how light acts in real situations, and it seems like you're spending a *lot* of time trying to override it.


08-08-2005, 07:10 PM
mTp: i totaly understand what your saying.

let me explain a little more of what iam trying to do. im trying to simulate the bounce light of the lamps, lights etc while i'm using area lights for the "real" lights.

im trying to simulate the general ambience (bounce light) of each room in relation to how much light is being emitted from the "real" lights. i thought that it would be more logical to accomplish this by having more control of lights on a surface basis then to actually change the properties of the surface itself.

08-09-2005, 10:14 AM
I'm not sure I understand what you mean by "bounce light". If this is the light bouncing off of surfaces onto other surfaces, in LW that's called "radiosity" and can be enabled on the General Illumination panel (at a substantial increase in render time).

I've attached a couple of images to show the effect of the default radiosity settings on your test geometry. The lighting is identical for both images: one 75% spotlight with shadowmapped shadows in the sky, and one 75% point light in the upper left corner room. The only difference between the two renders is enabling Radiosity (and Shadow Noise Reduction) on the General Illumination panel, keeping the default settings.

If this is the effect you're looking for, be sure to read the section in the manual on radiosity, since it gives some details on how it works and why it takes so long to calculate. You can get some fairly reasonable results using interpolated radiosity rather than Monte Carlo at much lower render times, but you have to play with the settings to get your desired quality.

Otherwise, best of luck with your simulation of the bounced light!


08-09-2005, 10:57 AM

i thought i mentioned this in my previous post but i guess i didnt :foreheads

im trying to simulate radiosity, specifically the "bounce" of the radiosity lighting, i hope that makes sense.

i think i can accomplish what im after with the BRDF shader.

Thanks for your help! :)

08-09-2005, 03:40 PM
Boy, I completely missed the point of your gyrations with the surfaces, etc. Sorry!