PDA

View Full Version : node pixel filter - i feel like an idiot



littleloud
03-13-2009, 09:03 AM
hi there, i've been looking into some simple multipass setups
and found this post over at spinquad

http://www.spinquad.com/forums/showpost.php?p=212442&postcount=12

its gerado using Denis Pontonier's node pixel filter to extract different light passes from a render. i've looked at this a 1000 times and i still cant understand it or make anything do what i think it should.

i'm trying to achieve 1 pass that only has non direct ambient light and another pass with my distant light. i'm then hoping to be able to increase\decrease the lights brightness in after effects by blending the layers.

this is the only way i can think of to acheive this effect without multiple renders. unless i'm missing some other way?

does anybody have any pointers? or even a really basic scene as an example?

thanks a lot

n.

Sensei
03-13-2009, 05:59 PM
Of course you have to have multiple renders.. Diffuse Shading channel (in Dpont plug-in called Diff Color) contains all lights diffuse.. How would you extract one particular light settings from that? Render pass managers generate different scenes with different settings.. And you have to render each scene independently anyway..

BTW, did you enable buffers that you're interested in, by double clicking on Node Image Filter node and selecting them? Without this set Node Image Filter is always returning black image..

toby
03-13-2009, 06:43 PM
Vray provides separate cg and gi light passes, I wish LW did too. What you can do is render a separate pass with just the cg lighting, and subtract this render from the one with cg and gi, in post; (cg+gi light) - cg light = gi light.

It's a lot of extra rendering if it's a complex scene, but it's the only way =\

Captain Obvious
03-13-2009, 08:06 PM
It's possible to set up a GI-only output in Lightwave, but it requires a little bit of work...

Basically, what you need to do is have TWO diffuse shaders (it only works with diffuse shaders, not materials or anything else). Turn off Radiosity on one of them, keep it on the other. Then subtract the non-radiosity one from the other, and you're left with just the GI effect.

Of course, there are a few issues with this, still. You need to use a few nodes (such as make material, material switch, spot info) to make sure it only happens on primary camera rays, otherwise the GI ends up getting screwed up.

It is also possible to do single lights separately in Lightwave, complements of Michael Wolf. One of the nodes in dbwTools is a single light lambert shader, where you pick one light source in your scene and it does a lambert shading effect on this one light. It's pretty neat.

toby
03-13-2009, 08:51 PM
It's possible to set up a GI-only output in Lightwave, but it requires a little bit of work...

Basically, what you need to do is have TWO diffuse shaders (it only works with diffuse shaders, not materials or anything else). Turn off Radiosity on one of them, keep it on the other. Then subtract the non-radiosity one from the other, and you're left with just the GI effect.

Of course, there are a few issues with this, still. You need to use a few nodes (such as make material, material switch, spot info) to make sure it only happens on primary camera rays, otherwise the GI ends up getting screwed up.

But you still only get one of the two passes right? Might as well do it the simple way, probably render faster without the node network too.

littleloud
03-14-2009, 12:36 AM
, can i clarify what you are saying
Vray provides separate cg and gi light passes, I wish LW did too. What you can do is render a separate pass with just the cg lighting, and subtract this render from the one with cg and gi, in post; (cg+gi light) - cg light = gi light.

It's a lot of extra rendering if it's a complex scene, but it's the only way =\


so toby, can i clarify what you are saying. render a full pass as normal with all lights and radiosity, global illumination etc.

then turn off global illumination (hdri or whatever) and render out another pass for each light.

would i keep radiosity on for these aditional passes?

i take it i'd use one of the after effects blend modes to subtract the lights?

thanks for your help

n.

gerardstrada
03-14-2009, 01:26 AM
For these kind of setups, I'd recommend to try Image Filter Node Editor first, just because it's faster and it provides better antialiasing with Extrabuffers nodes. We can get a GI pass directly in DPont's Node Editors without the necessity of setting up this by hand surface by surface, if we use Surface channels. Moreover, we can even get an RO (radiance occlusion) pass, or a color bleed pass or an illumination pass, or all of them with just a single render. But remember, we need to make usage of Surface channels, since we need diffuse and shading data for doing so.

Then, the only thing that I can think about why you are not getting the expected results, is because you are using DiffuseShading input in the Surface Root instead of Diffuse channel. If we don't use diffuse channel, we won't able to get any data from DiffuseShade buffer (scalar). We'll have the DiffuseColor data, but without DiffuseShade, we won't be able to isolate the GI pass (unless we are using an occ node which supposes other setup).

As Captain Obvious has suggested, if we need to use DiffuseShading (color), we need to store an additional DiffuseShading data with Radiosity option disabled for every surface (you can use ExtraBuffers node to store this as a scalar buffer). And yes, if you are using a Material node, you need to use SplitMaterial to make usage of the color shadings.

I gonna write some articles for HDRI3D magazine about these experimental tools from Denis Pontonnier, and magazine has kindly agreed to share the scenes files for free. I'd just want to have more time to write these articles series :)

Btw, other way to get a beauty pass (lambertian diffuse) is with DPont's Shadows node.



Gerardo

toby
03-14-2009, 01:39 AM
so toby, can i clarify what you are saying. render a full pass as normal with all lights and radiosity, global illumination etc.

then turn off global illumination (hdri or whatever) and render out another pass for each light.

would i keep radiosity on for these aditional passes?
One pass with gi, one without. But if you're planning on rendering each cg light separately, then I feel for ya!


i take it i'd use one of the after effects blend modes to subtract the lights?

Oh crap, AE? I'm afraid you're going to have to call Adobe and explain to them what SUBTRACT means, and how useful it is to be able to "subtract" one value from another. I can't find a way to do it with the Photoshop blend modes.

And while you have them on the phone, can you tell them what DIVIDE means? Eh, probably too much for them to absorb in one month, don't bother.

littleloud
03-14-2009, 06:53 AM
thanks for the replies :)

thanks for the response gerado, i think my main issue is i haven't got a clue how to even add the nodes in lightwave. i think i must be really stupid, because every post about these nodes feels like its at least 3 steps ahead of my knowledge.

i do tend to learn more by looking at existing scene files and pulling them apart.

great that hdr3d will be having you tutorials, its a shame that the reality of it is a six month wait :( (still waiting for the issue with protons sketch rendering tutorial in it)


anybody got any idiot proof "A,B,C" style pointers?

thanks

n.

Sensei
03-14-2009, 11:57 AM
anybody got any idiot proof "A,B,C" style pointers?


If you have not already watched all training videos, here you go http://www.newtek.com/lightwave/training.php
Better take couple days free at work.. ;)

littleloud
03-14-2009, 01:34 PM
sorry you misunderstood. i know how to use nodes and lightwave built in stuff.

its just dennis' nodes i'm having issues with

sorry if i was unclear

n.

toby
03-14-2009, 01:40 PM
he explains them here
http://www.newtek.com/forums/showthread.php?t=71751&

gerardstrada
03-14-2009, 06:31 PM
One pass with gi, one without. But if you're planning on rendering each cg light separately, then I feel for ya!

Unless you use something like Passport or Janus.



Oh crap, AE? I'm afraid you're going to have to call Adobe and explain to them what SUBTRACT means, and how useful it is to be able to "subtract" one value from another. I can't find a way to do it with the Photoshop blend modes.

And while you have them on the phone, can you tell them what DIVIDE means? Eh, probably too much for them to absorb in one month, don't bother.

We can indeed do that with AE or PS. Subtract mode equivalent is Difference, and Divide mode is an inverted layer of ColorDodge :)


he explains them here
http://www.newtek.com/forums/showthread.php?t=71751&

Yep, the basics are there. It's linked in the Spinquad thread as well.



Gerardo

toby
03-14-2009, 07:55 PM
We can indeed do that with AE or PS. Subtract mode equivalent is Difference, and Divide mode is an inverted layer of ColorDodge :)

Sweet, I was hoping someone could translate Adobean. :D

Captain Obvious
03-14-2009, 08:00 PM
Who the heck uses AE for compositing, anyway? People who think AE is a compositing application will be placed in jail when I become El Presidente. Free copies of Shake, Nuke or Fusion will be provided to everyone else.

gerardstrada
03-14-2009, 10:07 PM
Sweet, I was hoping someone could translate Adobean. :D

HAHA! :D



Who the heck uses AE for compositing, anyway? People who think AE is a compositing application will be placed in jail when I become El Presidente. Free copies of Shake, Nuke or Fusion will be provided to everyone else.

That's even more funny :D



Gerardo

toby
03-14-2009, 10:18 PM
Yea he's got my vote :p
I'll take a Nuke plz!

gerardstrada
03-15-2009, 02:17 AM
It's funnier because several people say the same thing about LW - "Who the heck uses LW for CGI, anyway?" - and then, they come back to their work because their AE project has finished to render :D

Seriously, I indeed use AE (besides of Fusion, Combustion and a bit of Toxik) and can do (referring to AE and LW) things that several people with Maya and Flynt are not able to do in the same time. I think -at least in the technical part - it's not a matter of specific apps but knowledge (R&D, working schemes, techniques and methodologies). So for people like littleloud who uses AE, LW, or whatever other app, do use whatever you are able to use, as long as you know what you are doing :)



Gerardo

littleloud
03-15-2009, 07:34 AM
well said gerado, couldn't have put it better myself :)

i'm a great beliver in "its not the tools, its what you create" thankfully so are our clients

which is why i get to work on a huge range of high profile fun projects. and why as part
of a small team i was particuarly happy to win a BAFTA recently.

all done with lightwave and after effects


http://www.littleloud.com/

:)

toby
03-15-2009, 05:14 PM
Xlnt, congrats!

gerardstrada
03-15-2009, 06:29 PM
well said gerado, couldn't have put it better myself :)

i'm a great beliver in "its not the tools, its what you create" thankfully so are our clients

Totally agree. I clarified just in case CaptainObvious' joke could be misinterpreted :)


which is why i get to work on a huge range of high profile fun projects. and why as part
of a small team i was particuarly happy to win a BAFTA recently.

all done with lightwave and after effects


http://www.littleloud.com/

:)

Congratulations! not only for the BAFTA, but also for knowing what you guys are doing.



Gerardo

gerardstrada
03-19-2009, 06:34 PM
Btw, I thought that I hadn't shared this in the spinquad thread, but there's a way to extract a global illumination pass in DP Filter Node Editors even if we are using diffuse shading only (and not diffuse channel at all). It's probably not so clear but it's already implicit there... vector-scalar makes the job :)



Gerardo

toby
03-20-2009, 01:13 AM
Btw, I thought that I hadn't shared this in the spinquad thread, but there's a way to extract a global illumination pass in DP Filter Node Editors even if we are using diffuse shading only (and not diffuse channel at all). It's probably not so clear but it's already implicit there... vector-scalar makes the job :)



Gerardo
Well as soon as he goes Mac I'm all over it :/