PDA

View Full Version : Bouncelights effect with Gradients


gerardo
10-09-2004, 02:49 PM
Several people have asked me about the technique to make in LW this image created originally by Twilight in VRay:

http://www.lsddigital.net/images2/gerardo2/testsala5.jpg

The render time at 640 x 480 are 7min 46 seg and at 800 x 600 are 9min 42 seg.
The GI effect in this scene is achieved mainly with gradients based on distance of Null objects:

http://www.lsddigital.net/images2/gerardo2/salasettings.jpg

to explain it better I've prepared a simple scene:

http://www.lsddigital.net/images2/gerardo2/12.JPG

The room shown above, don't have any light (Light intensity = 0 / Ambient Intensity = 0), only 4 Nulls to adjust the bouncelight effect of basic ambient light, more 2 lights is possible to obtain a result a little more accurate:

http://www.lsddigital.net/images2/gerardo2/21.JPG

In both cases I've used the same technique: Gradients based on distance of Null objects; this can be made with LW gradients or with FIsLocal Ambient shader.
This tutorial will only explain how to use this technique with LW gradients.

Before anything we should have clear how the light behaves in the nature or to guide us by photographs or a preliminary render with GI.

We begin loading our room and diminishing the Light intensity and the Ambient Intensity at 0; what we have now is a dark room.
Either that we use spinning lights, FPrime or SG_AmbOcc shader, is advisable to separate in independent Layers the floor, the ceiling and the walls.
We change the Backdrop Color to white, we go to surface panel and adjust all the surfaces with Luminosity to 80% aprox:

http://www.lsddigital.net/images2/gerardo2/1.JPG

gerardo
10-09-2004, 02:50 PM
We add a Null and position it to the center of the scene (like a point light) to simulate a basic effect of ambient lighting:

http://www.lsddigital.net/images2/gerardo2/2.JPG

Subsequently we add a gradient in Color Channel, Blending Mode: Additive, Layer Opacity 40 aprox. (this value represents the environmental interior light of the room):

http://www.lsddigital.net/images2/gerardo2/L1.GIF

The idea of leaving the second Parameter with alpha in 0% is that this will maintain the intact color base.

To have a little more clearly idea of the final result, we add the SG_AmbOcc shader of the brilliant Skidbladnir.

http://www.lsddigital.net/images2/gerardo2/AMBOCC.GIF

I've chosen a dark yellowish greenish neutralized color for the shades, because this the color average of the whole scene (green + orange + cyan + white) but later this color will vary depending on the surface (blued for the blue wall, orange for the orange wall, etc)

http://www.lsddigital.net/images2/gerardo2/3.JPG

Then we continue with the ceiling, what we should make here is a gradient that goes from the blue color toward the orange one; for this we should consider that for LW the starting point of the gradient (first Parameter) is the position of the Null object; in this case we will use X_distance_to_object, since the walls that affect to ceiling are the lateral walls, this will provide us a lineal gradient in X. For this we add a Null in the inferior extreme right (doesn't care if is superior or left, the important thing is that is in an extreme and depending of which it is, we set our gradient; in our case, is this way:

http://www.lsddigital.net/images2/gerardo2/CL2.GIF

Notice that there is a parameter between the blue color and the orange one (is an intermediate greenish color) which we have set with a low value in alpha so that the center of the ceiling is not affected by the colors of the extreme, since the influence of the lateral walls is not so long;

http://www.lsddigital.net/images2/gerardo2/4.JPG

also notice that we have diminished the value from the first gradient to 20%, is this way because we will add a third gradient that will simulate the rebound of light from the floor toward the ceiling.

http://www.lsddigital.net/images2/gerardo2/CL3.GIF

In both cases we have chosen Blending Mode: Multiply, since in the reality these bounces only tint the surfaces but they don't add luminosity (what would happen if we used bounce-lights; here the gradients advantage ).

http://www.lsddigital.net/images2/gerardo2/5.JPG

gerardo
10-09-2004, 02:52 PM
Is the moment to say that the direction of the main light (Keylight) will be from right to left and will enter through the door (could enter through the window and we would have a nice back lighting but we will make it through the door to hinder a little more the things :)
This means that the light that enters for window is not direct but indirect and this can also be simulated with gradients.

For this we add other Null in the superior part of the window and we set an additive gradient since indeed this gradient provides luminosity to the surfaces:

http://www.lsddigital.net/images2/gerardo2/CL4.GIF

Still lack to add the keylight (is advisable to make it first but I haven't made it to show the result of the gradients without lights that modify it). at this time we can say that the ceiling is ready, at least in what refers to bounce light effect.

http://www.lsddigital.net/images2/gerardo2/6.JPG

Is important to keep in mind the place where the Null objects are located to optimize to maximum their number, using the smallest quantity possible. We see it in the scene:

http://www.lsddigital.net/images2/gerardo2/NULLS.GIF

We study the position of this Null object for example:

http://www.lsddigital.net/images2/gerardo2/NULL2.GIF

As we've seen the Null serve to set the ceiling gradient, but also serve us to set the floor gradient (light that bounces from the blue wall to the floor):

http://www.lsddigital.net/images2/gerardo2/7.JPG

and to set the gradient of the blue wall (light that bounces from the green floor to the blue wall):

http://www.lsddigital.net/images2/gerardo2/8.JPG

gerardo
10-09-2004, 02:53 PM
This other one:

http://www.lsddigital.net/images2/gerardo2/NULL3.GIF

It serve us to set the rebound from the floor to the orange wall:

http://www.lsddigital.net/images2/gerardo2/9.JPG

And from the orange wall to the white wall:

http://www.lsddigital.net/images2/gerardo2/10.JPG

And from the blue wall to the white wall:

http://www.lsddigital.net/images2/gerardo2/11.JPG

gerardo
10-09-2004, 02:54 PM
Is even possible to take advantage in the scene of other objects that aren't a null, as for example in the case of the white wall of the front, we have used as reference the floor to simulate the greenish rebound toward the wall:

http://www.lsddigital.net/images2/gerardo2/12.JPG

All these gradients can be used in the same way with FIsLocalAmbient. To explain the idea we will do it with an element inside the scene (this can be applied in the same way in the walls). we load a small sofa and add the SG_AmbOcc plugin first and then FIsLocalAmbient in the second shaders slot, we adjust the value of FLA in 80% and the Luminosity from its surface to 20%; what is equal to 100% in total, this means that our sofa will be more sensitive to the light than the rest of the room.
Subsequently we enter to the properties of shader texture (this is something that I hope Skidbladnir adds to his SG_AmbOcc).

http://www.lsddigital.net/images2/gerardo2/13.JPG

We begin with the gradient that will simulate the greenish rebound of light of the floor:

http://www.lsddigital.net/images2/gerardo2/14.JPG

As we can see we have used the floor like Object Reference:

http://www.lsddigital.net/images2/gerardo2/OTHEROBJ.GIF

gerardo
10-09-2004, 02:56 PM
We continue with the orange rebound using the Null of orange wall:

http://www.lsddigital.net/images2/gerardo2/15.JPG

And with the blue rebound using the Null of the blue wall:

http://www.lsddigital.net/images2/gerardo2/16.JPG

Ok. Is time of putting our Keylight. If we are using an ambient occlusion map we can use Fprime and simply add an area light; but to stay in LW we will use spot_light that moves, to simulate the effect. Our Keylight is as follows:

http://www.lsddigital.net/images2/gerardo2/SetLight.gif

gerardo
10-09-2004, 02:57 PM
In this direction in the frame 0 and 1:

http://www.lsddigital.net/images2/gerardo2/Light1.gif



Pre and Post Behaviour Repeat

http://www.lsddigital.net/images2/gerardo2/17.JPG http://www.lsddigital.net/images2/gerardo2/18.JPG

gerardo
10-09-2004, 02:58 PM
We should also add something of light in the ceiling, so we add another spotlight
This way in the frame 0 and 1:

http://www.lsddigital.net/images2/gerardo2/Light2.gif


Pre and Post Behaviour Repeat

http://www.lsddigital.net/images2/gerardo2/19.JPG

Since the keylight is hitting the center of our orange wall, we should adjust the first gradient this way:

http://www.lsddigital.net/images2/gerardo2/orwalllastchange.gif

The color of the gradient is yellowish because this is the color of our keylight.
We activate Motion Blur to 50% and we render the frame 1:

http://www.lsddigital.net/images2/gerardo2/21.JPG

Here a test with an area light:

http://www.lsddigital.net/images2/gerardo2/22.JPG

This image took as 1 min for render with LW native render (PIV 2Ghz)

It's all, if somebody wants to take a look at the scene, you can find it here:

http://www.flarenova.com/temp/G-room.zip

If you make something interesting with this technique or you discover something new with it, don't doubt to share it :)



Gerardo

P.D. :This tutorial hadn't been possible, without the gentile help of Julez4001, and Luis Gerardo Castellanos from LSDdigital.net. Thanks guys!!!:applause:

gerardo
10-09-2004, 03:04 PM
Some graphics cannot probably be shown due to my geocities count :shrug:



Gerardo

Julez4001
10-09-2004, 03:10 PM
Can you email them to me?

Julez4001@yahoo.com

gerardo
10-09-2004, 03:14 PM
Of course Julez!!! You save me again :D
Thanks man! :thumbsup:


Gerardo

duke
10-09-2004, 03:22 PM
Unless Julez is already doing it, if you send the images to me i'll host them :)

gerardo
10-09-2004, 03:36 PM
JulezIīve just sent you the files :)
Duke, thank you very much! :thumbsup:



Gerardo

Julez4001
10-09-2004, 05:36 PM
check email

EsHrA
10-09-2004, 07:02 PM
looks interesting ! :thumbsup: ...now for the pics ! :)



mlon

gerardo
10-10-2004, 01:43 AM
check email

Thanks Julez! I have already updated the pics :)

Gerardo

MooseDog
10-10-2004, 02:01 AM
fascinating. appreciate very much how you publicly explore lighting techniques and solutions. bookmarking now! thx:thumbsup:

otacon
10-10-2004, 02:33 AM
Very interesting. Thanks for the info. Ive been trying to fake soft shadows in the corners of rooms by putting a value procedural in the diffuse channel, and using falloff to fake darker corners. This way you have looks like it will work a lot better.

gerardo
10-10-2004, 03:14 AM
MooseDog, thanks man :)
Otacon, do you refer to falloff of Texture Editor?



Gerardo

Lique
10-10-2004, 03:35 AM
Never seen this technique b4!! :bounce: Thanx for your genorosity!!:thumbsup:

Para
10-10-2004, 08:20 AM
Had to try your scene (did you forget to add the sofa in to the zip?), render time was exactly 50 seconds on my Athlon64 3400+. Haven't thumbed up anything for a while, now it's the time to do that again. Good work :thumbsup:

Jure
10-10-2004, 10:05 AM
Oh man, you're a genius! Thanks for this! Gonna try it rightaway!

Finkster
10-10-2004, 04:25 PM
Very smart! Thanks for sharing.

gerardo
10-10-2004, 05:52 PM
Wow! guys thanks for comments.
Para, you are right I forgot to add the sofa in the zip :blush: But you can find it here:

http://www.geocities.com/gerardstrada/G-room.zip

It also comes in LW Content (is the green sofachair) :)



Gerardo

Para
10-10-2004, 06:24 PM
It also comes in LW Content (is the green sofachair) :)

Oh :) Haven't browsed thru all the new content yet (since there's so much of it and I just don't have time to check everything out) :)

Obi-Wan Kenobi
10-11-2004, 11:48 AM
WOW!

What an excellent and simple tutorial.......thanks alot for shareing it. :)

Netvudu
10-11-2004, 03:18 PM
Gerardo, Iīm getting bored of telling ya how cool your posts are.:applause:
Once again, you made it. Are you attending Art Futura by any chance? we might meet there personally...

southparx
10-11-2004, 04:10 PM
:bounce:

Gerardo, thanks a lot for sharing this

:thumbsup:

btw, bandwith exceeded for the scene with sofa

anyone kind enough to send the file to: southparx@hotmail.com ?
thanks in advance

MooseDog
10-11-2004, 05:47 PM
It also comes in LW Content (is the green sofachair)

i.e. you already have it:)

southparx
10-11-2004, 05:56 PM
oops sorry i missed that
thanks

Keddy
10-11-2004, 07:14 PM
Very interesting information. Thanks for your sharing! :thumbsup:

gerardo
10-11-2004, 07:36 PM
Thanks Obi-Wan! :)
I appreciate your words a lot Netvudu :thumbsup: I would really like to go to Madrid; but arrrrg! I cannot go this year. I hope to be able to go the next one :bounce:
Southparx, I already sent you the file :)
Thanks Keddy, is advisable to try the technique with FIsLocalAmbient in the walls too, the interaction of this plug with SG_AmbOcc offers different results to LW gradients.



Gerardo


Edit: I mean Madrid ;)

Netvudu
10-12-2004, 02:07 AM
pal, Art Futura doesnīt take place in Madrid. Itīs in Barcelona. Thatīs why I asked....donīt you live around there?

gerardo
10-12-2004, 02:28 AM
Yes you are right, but I have a friend that lives in Madrid (Iīm very very far). I hope to be able to go of visit, barely I have some time (I don't have vacations for 10 years :eek: )



Gerardo

hesido
10-12-2004, 06:05 PM
Is it technically possible to use the ambient occlusion shader as a gradient input? This way the occlusion shader would have much more exciting uses..

In general, is it possibe for a plugin to act as a gradient input in lightwave??

Or is this technique already using it as gradient and I missed the whole point ? :)

Steve Warner
10-13-2004, 02:13 AM
Wow, this is fantastic! Thanks for sharing such a great lighting trick! :applause:

lazynok
10-13-2004, 08:31 AM
that is pure genious!

colkai
10-13-2004, 09:55 AM
Ya know - after all the flaming lately - it's great to see some cool threads emerging :D
I just found another ... Gotta love LW :)

http://www.cgtalk.com/showthread.php?t=176866 - I didn't know about this either - cool!

southparx
10-13-2004, 05:23 PM
Southparx, I already sent you the file :)



Thanks, you're too kind :)

btw, i fail to get the spinning spotlight, do u mind to explain that a little bit in detail, please?

thanks again

gerardo
10-13-2004, 11:11 PM
Steve Warner, wow! your books are Great, man! thank you for your comments. :bounce:
Lazynok, thanks :D
Colkai, that is a nice modeling trick :)
Southparxs, the principle behind the spinning spotlight is that the light moves from one side to other and up to down (with intensity falloff). The horizontal motion softens the lateral shadows in the extreme of the objects; and the vertical motion softens the shadows according to the distance of the objects, this effect is reinforced by intensity falloff. OC_Window of Ekki Halkka (Plugpak) offers a better rig for this, since you have two lights, each one for each motion. In my example I made this in the more simplest way possible. You can download the spinning spotlight scene here :)
http://www.geocities.com/gerardstrada/G-room.zip
Hesido, you are a genius! :thumbsup: Trying to respond your intelligent question, I thought that SurfMixer can make what you say, so I made a quick test with 2 Surfmixer, gradients and 2 Nulls. (see attachment)
The weird thing: SG_Ambocc together with SurfMixer works with some objects, but not with others and I still am not able to discover which is the reason. Actually my biggest requirement for the SG_Ambocc of Skidbladnir is the possibility to work with textures (like Docuwildīs plug-in); this lack can be resolved with SurfMixer (thank you for that question!) but I think that it would be more stable if Skidbladnir could add this feature to his fabulous shader.



Gerardo

m_luscombe
10-14-2004, 06:10 AM
Some bloody neat tricks in this thread, and it gives me some neat ideas on how to fake lights behind fabric or lightshades.

I gotta ask, though: is it worth it?

I mean, you have to do some radiosity rendering anyway to find out what the lighting should be, and it seems like some pretty hefty setup time to get all the gradients and nulls setup right. Then if something changes, you have to go back and revise your elaborate ruse.

I guess I'm asking what the benefit is to using this method, instead of baking your lighting or just using Fprime? The render seems pretty bloody fast, but you add a lot of setup time into the mix.

gerardo
10-14-2004, 07:31 AM
mmm...lemme see
to set up the keylight and basic gradients for room scene took me a couple of hours ; then I invested some daily minutes in refining it (I didn't dedicate it a lot of time since it was just a test), in total will have been around 3 hours. After that, the render time per frame at 640 x 480 were 7min 46sec, The same thing, with Radiosity (tests with F-Prime and LW) took between 4 and 7 hours per frame. If we added the time of baking illumination in textures, is more time; if we also want to animate the objects in the interior, we would have to bake the illumination in every frame in that the object moves; with this technique the null should simply follow this object to achieve a realistic effect.
For the room scene I didn't use any reference, I only calculated: the light hits here... and then rebound here... and so on; trying to achieve an agreeable aspect visually, but maybe not mathematically accurate (at the end of the day, this is the work, that the viewer perceives the image like real, what doesn't mean that you should copy it exactly, is a matter of perception)
At least for me, the technique is not excluding, you can use it with baked textures, F-Prime, spinning lights, radiosity, mixed techniques; is only an additional solution to simulate GI. If is viable for a specific scene; why not use it? For interior scenes I find it most versatile than to fill my scene with pointlights, spotlights or arealights that simulate bounce lights, since I can define the form in which the gradient will influence a surface and I can optimize the number of nulls so that the same effect is achieved by less nulls than bounce lights.
I think that the best thing you can do is to test it and to determine in what cases is viable for you and in what cases you prefer to use it, not use it, use other techniques or complement it. :)



Gerardo

colkai
10-14-2004, 10:22 AM
I think that the best thing you can do is to test it and to determine in what cases is viable for you and in what cases you prefer to use it, not use it, use other techniques or complement it. :)
Gerardo

Wise words, and not just for this technique as well.
Sometimes it's better to look at things from a different perspective, after all, this is how the famous Spinning Light trick first came about. :)

hesido
10-14-2004, 12:45 PM
@gerardo: Let's just hope we'll have that gradient input feature in the future :=)

Actually I haven't rendered or modeled a single thing for months, I am beginning to forget all. :( These topics get me back on my feet tho, thanks.

HowardM
10-14-2004, 04:38 PM
:bounce:
You rock Gerardo!

gerardo
10-15-2004, 12:30 AM
Sometimes it's better to look at things from a different perspective, after all, this is how the famous Spinning Light trick first came about. :)

Thanks Colkai, I agree with you, seems that this is what Hesido made, to be far from all this, had helped him to see the situation from a different perspective; I spent several days trying to figure out how to solve this lack of the SG_Ambocc to work with gradients and I was not able to find anything until he commented his idea. :lightbulb
But Hesido: don't go far too much :D
Thanks Howard, you don't imagine how much I have learned about dynamics and PFX thanks to you :thumbsup:



Gerardo

E_Moelzer
10-15-2004, 02:55 AM
Hey Gerardo!
Awesome technique, thanks a lot for sharing it.
CU
Elmar

xiao_x
10-15-2004, 03:15 AM
well,gerardo my superstar,i think gerardo choose using Lightwave is other LW user benifit..I see many creative and uniq techinic can`t find from other people tutoria.

Thanks for sharing gerardo........ :applause:

ages
10-15-2004, 10:05 AM
Great help Gerado, have u played with exteriors as well?

Yiorgz
10-15-2004, 01:05 PM
You guys are rocking !! :buttrock:
This kind of thread is what this forum is all about !! :thumbsup:

gerardo
10-16-2004, 08:00 AM
Hey! Thanks a lot :)
Ages: good question. I havenīt still tried it but I suppose that this technique application in exteriors is more simpler.
The approach behind this asseveration is sustained in the application procedure of this technique in interiors, that it can be classified in three layers groups:
1. The base layer: simulates the basic environmental illumination (is like LW ambient intensity), their color should be an average of the preponderant colors in the scene and the keylight. Mode: additive.
2. The layers that simulate bounce lights: These layers simulates the colorations of the rebounds of light depending on the surrounding objects. Mode: multiply.
3. The layer that simulate indirect illumination. Provided by the keylight (as the window of our example room); their color is almost the same one that our main light. Mode: additive.
Now, in exteriors all the objects almost share the same environmental illumination (something that is usually simulated with Backdrop Radiosity and an environment map) in this case I would use a lights dome or spinninglights that simulate this, indiscriminately for all the objects; what eliminates the first and third layer of our gradients technique. :beer:
The only type of necessary layer in exteriors would be the second; something that is presented in very wide areas in exteriors or in very specific zones, what would only reduce its use to some surfaces. Much simpler, I think. :)



Gerardo

NanoGator
10-16-2004, 09:09 AM
And another tool goes into my toolbox.

:beer:

shards
10-17-2004, 10:21 PM
very interesting thread!! thanks for sharing!! :thumbsup:
I already knew the "trick" but never used it to do lighting!

you can do really lots of things by using distance from null gradients..
here is some surfacing I did using the same method on the opacity of surf mixer:
snow that smoothly becomes ice:
http://oblivionb.altervista.org/icicles.jpg

or even SSS effects:
http://oblivionb.altervista.org/multiscatter.jpg

gerardo
10-17-2004, 11:12 PM
Nanogator, :beer:
Oblivionblack, your snow/ice surface looks nice! :thumbsup:
Have you tested surf mixer with SG_Ambocc? sometimes works, sometimes not and I don't guess why :hmm:



Gerardo

shards
10-18-2004, 12:03 AM
Have you tested surf mixer with SG_Ambocc? sometimes works, sometimes not and I don't guess why

I've setup and done a quick test right now..I was suspecting that what causes the problem was the position of the shader in the shaders list, and my tests confirmed that..

in other words it seems that if you have surf mixer *AFTER* SG_Ambocc (I mean 1st shader on top of the list is sg_ambocc and 2th shader surfmixer ) it overwrites the effect of sg_ambocc, practically calculating the surface mix on top of the occlusion effect thus evanishing the effect itself, (sometimes it makes it disappear completely)

so as to avoid the problem you have to make sure that sg_ambocc is the LAST shader in the list so its effect is calculated after the surf-mixing, I've tried with more than one surfmixer too as to be sure and it works ok, it just needs to be the last.
try it and let me know if it solves!
:thumbsup:

gerardo
10-18-2004, 12:32 AM
Is weird, I obtain an opposed result here. :hmm: When I put the SG_AmbOcc in the second slot, this overwrites to the SurfMixer and I don't achieve any coloration. However if I try the SurfMixer with the surface of another object (SG_AmbOcc in the first slot and SurMixer in the second) the effect is achieved. But I will also test your idea with another scene and other objects. Thanks :)



Gerardo

shards
10-18-2004, 01:31 AM
However if I try the SurfMixer with the surface of another object [...] the effect is achieved.

this is how surf mixer is intended to work, with the surface of another object, or with any other surface..
how are your surf mixer settings that does not work?

gerardo
10-18-2004, 01:55 AM
SurfMixer works, the only feature that isnīt shown is the SG_AmbOcc shader. :shrug:



Gerardo

hesido
10-18-2004, 12:28 PM
Hmm so we definitely need it as gradient input :=) I am STILL wondering if an external plugin can provide gradient input.

John Gonzales
10-18-2004, 02:33 PM
This is a great approach and technique. I am always experimenting with different lighting techniques and this one looks really cool. Does SG_AmbOcc shader come with Lightwave and if not where can I get it? I looked on Flay and entered :SG_AmbOcc shader but got nothing. Oh and is this a windows only plug??? I am on a Mac.

I have been working with area lights for key lights and setting the window lights to a negative setting and getting similar resultsfor interior shots but this looks really nice as being able to exact some fine tuning.

Either way this is a really novel approach with great potential.... Thanks for sharing

hesido
10-18-2004, 03:45 PM
http://www.flay.com/GetDetail.CFM?ID=2030

Check out my site for a fake GI setup with spotlights btw :) Nothing like this tho.

John Gonzales
10-18-2004, 04:09 PM
Thanks, much appreciated.

Unfortunately, it was as I suspected, a windows only plug.Ya do get bitten from time to time on this one.

Thanks I appreciate your response though.

Cheers

PaZ
10-22-2004, 12:22 PM
mmm...lemme see
GerardoHi all,
i use a similar thechnique for interiors, but slightly different.
I use Interpolated radiosity (1 bounce) with relatively low settings (i.e 0.3 and 300 mm), Motion Blur and EhnLow or EhnMedium AA. That's the "basis", then i work with gradients to get dimmer effects wich i cannot get with just 1 bounce.
Tha advantage is you have NOT to recreate the whole lighting, but you've just to tweak it.
Generally, i get 3-5h renderings at 2560x2048 (even with reflective floors) on a P4 3.0ghz 1MB ram. BTW, Gerardo's method gives you more control and is well suited for animation.

Here's a tool i'd been dreaming for years, maybe someone can develop it... i'm disposed to pay for it, and i think other will: kinda a "local ambient tool" controlled via objects + Vmaps. Gerardo's method is similar, but it involves much more handjob.
We should create a simple object compenetrating the scene (even a point cloud), putting points where we need. Then, we should assign a Vmap to this obj, setting values for each vertex.
In Layout, this "Cage" would be invisible, but a proper Shader should read Vmap values from each point, and assign a proportional value to Surface's ambient (and/or diffuse). The space between points would be linearly or spline interpolated.
Again, it'd be nice if we could assign a Color Vmap to each vertex of the "Cage" in order to simulate color bleeding. Again, tweaking would be easy as adding/deleting/moving points from the "cage", or changing Vmap values. The good thing is you control the whole scene lighting with just one control object. Again, "cage" obj can be animated via bones, endomorophs or displacement to get smoother or weird lighting effects...
I think this would give much more control and much faster GI tweaking to LW users. What do you think about it ?

Regard,
Paolo Zambrini

gerardo
10-23-2004, 06:35 AM
Hi Paolo,
Thank you to share your technique :)
I find the idea of the plug-in which you mention very interesting, I would add to your idea that this shader should also mix depending on different Input_Parameters; depending on each vertex or point and to be able to assign more than one Input_parameter per point.
Maybe even a plug like this could use the colors of a captured environment map from the scene, as a baked texture and applied to a vertex_colormap, but with the advantage of being able to be controlled with gradients (something that can also be used to integrate CG elements on live action plates) :lightbulb



Gerardo

PaZ
10-23-2004, 12:18 PM
Hi Gerardo,
yesterday i was trickin' about this, and i made some tests.
Maybe you know Weighter plugin (commercial), which allows Vmaps assigning via proxy objects. I used the plug to assign Vmap to the Room and tried to manage it via Vmaps in Layout... not perfect, mostly because of brute-linear interpolation of Vmaps in LW.
I think a Shader like the one above would be the solution for two reasons: Vmap would not have to be applied exlusively on rendered obj's pts (it'applied to "cage" pts), which thing give much more freedom and control, and it could make a better (spline) interpolation.
I'm trying a Vmap-way to faked GI but Weighter seems to get only close, and manually applying Vmaps is not so convenient. Maybe we could make a quick radiosity pass and burn it into a VMap ? Surely i've not exlored all the possibilities.
In "extreme" situations i take a shot of (i.e) roof's wire in modeler, than i paint light in photoshop and apply it as diffuse map.
You thechnique is awesome, very paint-oriented and with very short render times, but how does it deal with non-square rooms, curved walls or other complex situations ? Input params in gradients are not so comprehensive, in some cases i found myself trickin' without an effective solution. Just hoping Newtek add a "spline-offset" input type, so we can control falloff along curves, and a "custom obj" one, so gradients could keep its value in the entire obj area, and then decay around that.
Again, i hope that the fantastic "Ambient Occlusion" shader will be able to deal with textures AND with Vmaps. I.e, a wall in a room can be darker on the top, while AmbOcc effect should be very dim in the low part, near the floor. If it can access Vmaps, also Color Vmaps could be used for bleeding..
just dreaming ;)

Regards,
Paolo Zambrini

gerardo
10-24-2004, 07:43 AM
Yes with a cage points it would work well, but still I don't know if is easier to use many points controlling the interpolation or to use very few points and to adjust the interpolation with the parameters of the own gradient.
The advantage of working with the Input_Parameters based on distance of the object points or in our specific case with Nulls, is that we can adjust the values of each gradient independently; for example in a curved wall (as the case that you mention), let us suppose that this wall is white and is in front of a cyan wall (front view), we can use a gradient with input_parameter based on X_distance_to_object and to adjust the gradient with only one Null so that the extreme of the white wall are tinted with cyan and the concave part remains white (doesn't care how many curves has the wall). In more complex cases we can use several Nulls (distance_to_object for each Null) or if we use Medium antialiasing we can only use one Null that moves along the walls in every frame(post behavior repeat), with MB activated the effect is even better than if we used several Nulls or points. :)



Gerardo

PaZ
10-24-2004, 01:36 PM
In more complex cases we can use several Nulls (distance_to_object for each Null) or if we use Medium antialiasing we can only use one Null that moves along the walls in every frame(post behavior repeat), with MB activated the effect is even better than if we used several Nulls or points. :)

Gerardo

Effectively i hadnt thought about using Motion BLur, great deal.
I've a simple example but still canot attach files (i remade my CGT account recently) so i cant give you an example where i think Vmaps can help mopre than nulls.
Surely best effect is obtained with a combination of the two, but since you're the "true gradient guy" i'm curious to understand how would you threat a case like this ;)
I'll post it as soon as possibile

Paolo

gerardo
10-25-2004, 04:40 AM
:D isn't that I think that everything should be made exclusively with Nulls (or gradients); up to where I understand, if multiple Vmaps is used for each specific area, would be possible to adjust them independently; but if was used only one Vmap for everything, any adjustment would be applied equally to all the areas, what doesn't make it very versatile (I'm imagining this as if they were weightmaps).
Paolo, would be interesting to see your example, perhaps there is something that I am not taking into account. :)



Gerardo

PaZ
10-25-2004, 11:45 AM
Oh, quite a simple one, but i still cannot attach files ;(
Think about a room with a curved roof, i.e a waved one (in section). Meeting of a wall and roof defines a curve, not a line (i hope i'm understandable). This way you cannot use a null to control color bleeding, but you've to use several ones. Maybe animated null + MB is the key, but i thought Vmaps could help there.
Another last-minute solution is using morphing; model a squared room, manage bleeding with a Null, then morph the room into final one with MorphMixer and bleeding will follow the curve.
...or not ? Will bleeding remain the same ? Does Gradient behave like it's always in Global Coord mode, so bleeding will remain linear ? Gonna make some tries.

Paolo Zambrini

gerardo
10-28-2004, 03:36 AM
Sorry for delay, I made some simple tests with your example (curved roof) and you don't need many nulls; only 2, one for X and the other for Y. Everything the rest is in how you adjust the gradient parameters :)



Gerardo

PaZ
10-28-2004, 09:42 AM
Can you post a screenshot ? Just curious ;)

Bye
Paolo

gerardo
10-29-2004, 04:22 AM
The first image is with 2 nulls, the second just with 1
Iīm refer to the ceiling, of course :)


Gerardo

HowardM
10-29-2004, 04:27 AM
Love the soft look!
:D

PaZ
10-29-2004, 10:38 AM
Ok, there it works ;)
It was not what i had in mind, i wonder why i still cannot attach images...
Anyway, i tought about a more complex room, with a section like this (think at the roof like a smooth spline):
_________
_____ / |
_____/ \____/ |
/ |
/ |
|___________________________|

Now, lets suppose the roof is red and all the walls are white. You have to simulate Red bleeding on the walls, following that curve. Using Y or X distance from nulls can be quite tedious, since you've to set up a lot of gradients. Maybe here you can use that trick you talked about: using just one null, animated along Roof's curve, and Motion Blur.
Anyway, in certain situations common Gradient's input params are not enough :shrug:
That's why i hope and ask NT adds a "distance to curve" one, or a "normal falloff" one (in this case, the gradient would analyze roof's geometry and make the effect decay along its normals).

Bye
Paolo Zambrini

PaZ
10-29-2004, 10:40 AM
_________
_____ / |
_____/ \____/ |
/ |
/ |
|___________________________|

Bye
Paolo Zambrini
OH MY GOD.
My wonderful sketch is totally messed up ;)
Ok, i'll wait till i can attach something... i apologize.

Paolo Zambrini

gerardo
10-30-2004, 07:15 AM
Paolo, donīt worry, your sketch arrived well to my e-mail. I like your idea! it would be much more easy :thumbsup:
Thanks Howard! :D



Gerardo

ages
11-15-2004, 02:00 AM
Bumping this post up as Im following it now.. Gerado any new advancments?

gerardo
11-16-2004, 02:45 AM
Hi Ages,
Yes, I discovered why the SG_AmbOcc sometimes works and sometimes not. The trick is this:
for the surface in which will mix different colors of the SG_AmbOcc, the shader should be in the first slot and the surfmixers in the subsequent slots; but for the surfaces from which the SG_AmbOcc's colors will be extracted, the shader should repeat 2 times (in the first and second slot) the shader of the second slot is only taken into account, for what the first one can be disabled (but it should be there). I hope the Docuwild's shader works as SG_AmbOcc and maintain its texture functionalities; it would be really excellent. :)



Gerardo

gerardo
01-01-2005, 11:31 AM
Continuing with the search of experimenting the possibilities of LW gradients, I met with this thread:

http://vbulletin.newtek.com/showthread.php?t=30723

In it, ThriJ uses the same principle of the technique of this tutorial, but not to simulate bounce lights effect, but to simulate SSS!!! something that it hadn't been crossed by my head; I found an excellent idea and I began to do tests with this cartoon character:

http://www.geocities.com/gerardstrada/sssgrad.txt

I think the effect is very promising (still is necessary to make more tests) however the setting is not so simple, at least so that the effect can supplant real SSS, are necessary several layers of gradients, mainly in luminosity and color so that the SSSeffect of the surface reacts according to the light position from the camera's point of view; besides an additive gradient in distant_to_object (a Null parent to a keylight), are necessary gradients with incidence_angle, light_incidence and weightmaps in mode alpha in areas where light is supposed it penetrates more (as the ears for example).
In the case of above, besides a light rotates around the object, this light is tied with a gradient in light_incidence that provides a reddish auto-illumination of the surface that extends along the whole surface in the exposure of each antialiasing pass, what reinforces the effect.
At least for me the result is promising, however I've noticed that the effect works well with very little diffuse (15%-25%), the rest is luminosity; what can hinder that the surfaces are tinted with the lights color (since isn't very notorious with those percentages in diffuse) what would force to integrate the surfaces with the illumination through gradients.
I haven't made tests yet, but the same principle of gradients can perhaps be applied to TB'sSkinshader, something that in fact, would allow to lights to affect the surface directly in a notorious way.



Gerardo

hesido
01-01-2005, 03:34 PM
Very promising, actually, the effect is enough for me!

I am sure you were imagining this also, I had made a gradient input feature request at newteks forums, gradient based on diffuse lighting value, that would enable us to "spread" the middle values and change their hue (not enough for backlighting tho by itself, but still..), then we could make small tweaks to diffuse lighting at a real fast pace, play with luminosity etc.. And maybe combine this technique with it and etc...

They made a huge load of surface gradient request for real funky effects but this one's real important. We'll keep our fingers crossed, with the new LWave SDK, I expect seriously innovative plugins tho!

This post isn't adding anything to the thread sorry :) Great work as always, and, keep it up man..

edit: for radiosity rendering, this technique would make our guys head a living lightbulb? :=)

Julez4001
01-01-2005, 08:02 PM
Gerado, can you animate a turnatable of that guy.

Oh by the way..check out fake sss tutorial using messiah tutorial.

gerardo
01-02-2005, 11:44 AM
Hesido: I hadn't thought on that, but now that you mention it, for this effect it would be really important, not only for the fact of being able to change the hue, but because it would allow us to define the translucency effect (with luminosity) in areas like the ears, for example. The problem more difficult of solving in this test is exactly that: if we use only light_incidence (in luminosity and color) to simulate the translucency and reddish coloration of the ears, we have a problem if light comes from lateral back lighting.
Since for the gradient, that angle means that the luminosity should be in the highest value, thing that it doesn't happen in reality, because the head is interposed between the light and the ear, and translucency shouldn't be produced in the left ear; if we could define the luminosity based on the quantity of light that really receives that area, we would have the problem solved; for what I think that your comment and request would be very useful with this trick. :)
At the moment I've solved the effect in 2 ways (if somebody has other ideas, please tell us):
1. If we want to maintain all in luminosity channel, we can add an input_parameter based on null object distance that approaches or moves away according to camera or light rotation; this has set it by hand, but I hope that someone skillful with expresions wants to teach us how to tie the null motion based on rotation of the light or camera.
2. The tutorial of Julez made me think that it was easier to achieve the effect using the translucency channel directly; it delays a little bit more but is quicker of setting. (I've used a spotlight for a speed up the render); the main gradient here is light_incidence, modified by 2 gradients in mode alpha (incidence_angle and a weightmap).
Julez, here is 2 animations, one with luminosity (http://www.geocities.com/gerardstrada/Sssl.avi ) and another with translucency (http://www.geocities.com/gerardstrada/Ssst.avi).
Btw, very interesting your tutorial :thumbsup: I've seen that messiah can reproduce SSS (even of skin) with success and speed.



Gerardo

hesido
01-02-2005, 05:22 PM
Hi there,

Gerardo, I think they asked for a turntable that turns the object and the lights and camera should stay in the same spot, to better see the effect of changing incidences.. We all would've liked to see such an anim :)


I know what you mean on that occlusion by the head issue, but to solve that occlusion problem, gradient based on diffuse lighting isn't enough, we'd have to have a trigger that differentiates that extra occlusion, so that only the first polygon after the first occluding light-facing polygon is backlit, but not the subsequent ones (this would be mixed with a simple (vertex) map to apply the effect to the right places) . That complicates things a bit, programming wise I guess :) As we don't have this feature, we're merely fantisizing!

But a simple ray traced solution that fires of a ray "from" the surface to the light and calculates the distance it passes before it gets out of the other side would be killer, and I wouldn't know why it would be really hard to add to a package.. It would enable really nice effects :)

Julez4001
01-03-2005, 01:10 AM
This image was created using combination of both this bouncelight gradient and TBskin (using a gradient via its many NEW features: Distance to XY Object).
http://www.flarenova.com/SSS_Statue.jpg

gerardo
01-03-2005, 08:06 AM
Hesido, I agree with you. For that reason I think at the moment the best solution is to use the translucency channel for this and to leave the SSS effect in the luminosity channel .
Julez, I haven't tried this gradients parameters with TBskin yet, but I see that the results are promising too,
could you add a blue fill light to see how the surface behaves with a light of another color, please? are all your gradients parameters in the shader or have you used some in other surface channels?
I believe that I misunderstood the meaning of turntable, I've updated the videos:
with translucency (http://www.geocities.com/gerardstrada/Ssst.avi) (199kb) and luminosity (http://www.geocities.com/gerardstrada/Sssl.avi) (217kb)




Gerardo

warchills
01-03-2005, 09:12 AM
Nice "tutorial". I only got one question, what does SSS stand for?

EDIT: Nevermind, I've found out now :)

xiao_x
01-03-2005, 09:59 AM
gerardo,that cool....gerardo: this texturing have use any plugin like TB fake skin???then which channel u add the gradient??can u more detail say about which channel u put how gradient and how many and what kind of gradient u add??
thanks

ages
01-03-2005, 10:33 AM
All this work to fake sub surface scattering and I ask u this - Why isnt SSS implemented in lw as standard? Like everyone else.

hesido
01-03-2005, 01:51 PM
All this work to fake sub surface scattering and I ask u this - Why isnt SSS implemented in lw as standard? Like everyone else.

Newtek is simply thinking about our health; people who solve puzzles, drive cars etc. keep their brain active seems to be less affected from Alzheimer's disease.. So Gerardo and Julez secured himself from this even from his early age..

Then again, through scientific studies, it is shown that having SSS does not cause Alzheimer's disease directly, so I am calling out to Newtek to do such an SSS implementation, and I am with you on this issue! :D

@Gerardo: The latest animations are great, maybe you could provide a detailed explanation on your latest findings for Alzheimer-Ready guys such as me... :thumbsup:

gerardo
01-04-2005, 10:41 AM
Thanks for your comments Xiao_x :)
HA! Great sense of humor Hesido :D (although I don't believe that you suffer Alzheimer at all); I agree also on the request of SSS integrated in LW, however I think that although these tricks can seem difficult, they offer us the possibility to achieve it in a quicker way that several shaders (the current image only takes 1 minute AAMedium in a PIV, 2Ghz).
Besides, I've noticed that if surface thickness (input parameter) worked well in all the cases, (in organic objects I obtain errors that I don't understand how to solve yet), we could get this effect in a more realistic way, only with LW tools.

About a detailed explanation, although this trick works on the same principle that the bounce_lights effect of this same thread, is ThriJ who thought of applying it to simulate SSS and I don't pretend to spoil his tutorial making one of the same topic (I hope he can post it soon); but after having made these tests, I've verified, at least to simulate cartoon skin, the gradients in luminosity are half of the road, and we can have several ways of approaching this technique, and I hope some ideas interchanged here can make more comprehensible the principle behind the trick.

So we can say that the effect (in the same way as the bounce lights effect), is based on the distance of null objects in the luminosity's channel (but we can also use other input parameters and surface channels with success).

We try to simulate here SSS of translucent objects (not transparent) that in simple terms, is light that penetrates in a surface, bounces inside it (is illuminated) and goes out again.


Then we have:
1. light that hits against the surface
2. absorbed light that it is dissipated inside the surface
3. light that leaves the surface


The point 1 are resolved with diffuse, very little value since most of the light is absorbed by the surface, commonly is not higher than 50% (in my tests is only 15%, for this reason seems wax or latex)


The point 2 are the most complex of representing, since has 3 aspects:

A. the light that is dissipated along the surface
B. the quantity of light that is dissipated inside the surface
C. the interaction of the light (or lights) with the internal colors of the surface


The point A can be solved with spinning lights (in my case is only a lateral light but in more complex scenes where we should integrate objects with the environment, we will need more elaborated lights rigs that change color)


The point B is light retained by the surface, for what luminosity is (apparently) the most obvious channel to achieve the effect. As ThriJ says, you can parent a Null to the keylight and to add an additive gradient based on distance of this Null object (in my case the Null is in the initial position of the keylight, but isn't parented to it since is a spinning light).

The effect can be modified by 2 gradients below, one in mode divide or multiply, and other (in the bottom) in additive mode (incidence angle), these 2 additional gradients (at less in my case) makes the surface more waxy (divide) or less waxy (multiply), however this is something that can also be achieved with more or less diffuse%.

Additionally in this channel, we can also achieve the translucency effect, but to avoid confusions, I will leave it for the end.


The point C is achieved in the color channel; the main gradient here is the gradient of the bottom: light_incidence (keylight), the first parameter is a reddish color (because is the color of the deepest layers in the dermis and the blood), the parameter of the bottom should have alpha in 0%.

The interesting thing here is that our keylight is a spinninglight, while the light goes rotating, the surface is tinted progressively by a reddish tone in different angles of incidence along the whole surface. When the frame is concluded, we have a reddish tone that is dissipated in a very diffuse, soft and diverse way. Nice trick eh??

To make more interesting the things we can add another gradient like the previous one but with incidence_angle, so that the edges of the surface that look toward camera are a little more reddish than the rest.

For areas like the ears we can add other gradients in alpha mode (light_incidence and weightmaps) that modify an additive gradient with more reddish tones in incidence_angle or distant_to_object.


Finally for point 3, the effect is achieved with 2 very quick shaders: an ambient occlusion shader (in my case SG_AmbOcc) and Daylite. The trick is in using warm and glossy skin tones that simulate a small quantity of light that leaves the surface. The shader can even be baked in the surface for a quicker render (thing that I didn't make in my tests).

As last comment about the translucency in the ears, it is something that I solved in 2 different ways:

In luminosity channel: this way is quicker for render but requires to add a Null that approaches or move away according to rotation of the camera, light or object, something for me very difficult of setting automatically, for what I did it by hand; isn't mathematically accurate and a little tedious but the render is quicker than to do it in translucency channel and I like the final result more. What we make, is to add over the gradients that we have already, a gradient based on distance of this new Null; this gradient should be modified for others (they should be above) in alpha mode, basically they are one gradient in incidence_angle, another in light_incidence (backlight) and the rest weightmaps that define the areas of the ears.

The other option is to use the translucency channel: where are basically the same gradients that for luminosity; what we make here is to delete the gradient based on the distance of Null object and to convert the following gradient (incidence angle) from alpha to additive, we leave the rest in alpha mode. We should be able to make this with surface_thickness and not with weightmaps as I mentioned initially, but still I'm not able to solve the errors that I obtain with surface_thickness about objects with organic form. If somebody has experienced the same thing and it has solved it, please tells us how.

Although the render is acceptably quick I'm interested in solving the handling of the illumination interaction with the surface, since is almost totally luminous and the lights's color barely affects.

This is only one way of achieving the effect with gradients, but I am sure there is several more, so feel free of sharing your ideas :)



Gerardo

Julez4001
01-04-2005, 01:16 PM
Blue light (spot) in the front, as requested.
The main light is now an area light and I slap a 3 layered procedual bump in him.
TBskin v0.28 and Lumiosity Gradient.




http://www.flarenova.com/SSS_Statue3.jpg

gerardo
01-06-2005, 04:14 AM
Julez, the surface interaction with lights is enough for me :thumbsup: but if we wanted it looks more waxy we would maybe have the same problem? (if we had to increase the gradient % and to diminish the diffuse) FIīsLocalAmbient can possibly help in that case :)



Gerardo

coremi
01-21-2005, 06:28 PM
gerardo, can u write down a tutorial, i don't see any of the images from the first pages,only the first picture but none of the others, and it looks fantastic what u've done. thanx a lot.

gerardo
01-23-2005, 06:20 AM
Coremi, the images of this tutorial are courtesy of Julez. Without his gracefulness, this tutorial would not be possible. :applause: Thank you for your generosity Julez! :thumbsup:

Btw, thanks to Gerardo Castellanos, you can find this tutorial in Spanish here:

http://www.lsddigital.net/articulo/25



Gerardo

coremi
01-23-2005, 06:38 AM
wow thanx a lot, i got it, i understand a little spanish, maybe enough to follow the tutorial, anyway u rock, thanx again

gerardo
01-23-2005, 07:22 AM
Thanks Coremi :) The tutorial follows the same sequence exactly as the original; however I think that you should review the first pages of this thread again, since I can see the images from the Julez's server.



Gerardo

coremi
01-23-2005, 08:22 AM
yep, thanx a lot, i do seem to see them too, anyway i got multilanguage version of your tutorial :applause:

rickycox
01-26-2005, 01:31 PM
Anyone know wher you can get a copy of 'SG_AmbOcc shader' ?

Exper
01-26-2005, 02:26 PM
http://www.informatik.hu-berlin.de/~goetsch/AmbOcc/

;)

rickycox
01-26-2005, 02:36 PM
uuugh PC only that's why it didn't register on my richter scale.

John Gonzales
01-26-2005, 02:43 PM
Yeah, I am hoping for a Mac port myself. Does anyone know of any Mac solutions similar to this approach?

Cheers

gerardo
01-27-2005, 06:10 AM
Yeah, I am hoping for a Mac port myself. Does anyone know of any Mac solutions similar to this approach?

Cheers


gMIL of Eric Soulvie?



Gerardo

Dirit
06-18-2005, 05:42 PM
There is now a Mac version of that plugin in http://www.informatik.hu-berlin.de/~goetsch/AmbOcc/

John Gonzales
06-18-2005, 06:08 PM
Hey, thanks for posting, Downloading as I type. Will have a go.

Cheers

lwfreak
03-25-2006, 03:35 PM
Some graphics cannot probably be shown due to my geocities count :shrug:



Gerardo

heja great thx
can u send me the demo scene?
xynonreal@gmail.com

PaZ
03-25-2006, 04:22 PM
does someone knows if SG_AmbOcc is still in development ?
It's one of the best AO shaders for LW, it's a shame if it's got laid off.

Paolo

gerardo
03-25-2006, 06:39 PM
heja great thx
can u send me the demo scene?
xynonreal@gmail.com


Sure, I've just sent you the scene :)



Gerardo

gerardo
03-25-2006, 06:41 PM
does someone knows if SG_AmbOcc is still in development ?
It's one of the best AO shaders for LW, it's a shame if it's got laid off.

Paolo


Yes Paolo :) Skidbladnir is developing a new Excellent version:
http://forums.cgsociety.org/showthread.php?t=167204&p=2888447
as far as I know, he is a very busy man and as you'll understand, these new features aren't easy to implement.



Gerardo

PaZ
03-26-2006, 02:39 AM
Yes Paolo :) Skidbladnir is developing a new Excellent version:
http://forums.cgsociety.org/showthread.php?t=167204&p=2888447
as far as I know, he is a very busy man and as you'll understand, these new features aren't easy to implement.

Gerardo

thanks Gerardo !
Excellent ;)

Paolo

otacon
03-26-2006, 03:11 AM
Very good to hear. Its one of my most valued plugins.

CGTalk Moderation
03-26-2006, 03:11 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.