Hi Adams,

Usually there are two cases where you can have NAN.
The first one would be if for one deep opacity sample you have NO value.
The deep opacity sample has an opacity but no color so the deep to image is
freaking out.
Even if you want to assign a black value to a deep sample, you need to have
a value in your alpha channel.
The other case (rare but it happens) is when you are deepmerging two
deepcolor streams and unfortunately one sample has the same position in
space than an other sample from the other stream.
The quick fix is to change slighty the depth of one of the stream by using
a deeptransform in Z.

For pgBokeh, I know exactly what you are facing.
Before we've created our own deepholdout at Fuel, I've found one trick to
kind of doing what you want.
It's expensive but it does the trick.
You need to defocus the color and the alpha separately and combine with a
copy after pgBokeh.
How ?
First you have to create an holdout for the color : put a fully black color
on the deep opacity you are using to cut out with a Constant ( 0,0,0,1) and
and a deeprecolor.
Then do a deep merge between the deep color stream and the "black stream".
Then you have a deep holdout but the alpha is wrong because is the
combinaison of the two streams.
So you need to deep holdout the alpha.
For doing that you have to use the same "black stream" and merge it with
your deep color stream that you have to turn into fully white (same technic
as above : recolor your deep color stream with a white constant (1,1,1,1).
If you merge the "black" and the "white" stream you will have the holdout
of the "alpha" but in the color pass.
Now you can defocus each stream separately and combine then with copy alpha.
You have to expect heavy renders but that the only way i've found at that
time.

Good luck.
Denis
-FuelVFX


2012/7/12 Adam Hazard <[email protected]>

>  Thanks for the reply. I do know why I am getting nans after the recolor,
> because exactly what you describe, they are different alpha channels
> between the 2.  I didn't really elaborate  on my issue, because I was just
> hoping for a quick answer if copying deep values was possible. Anyways,
> what I am trying to do is 2 deep operations in a row, but cant seem to
> figure out a way.
>
> First operation is cutting my renders with a deep holdout. Then trying to
> feed that into a  pgBokeh through the deep input. I was hoping I could cut
> the render, and then copy the deep values back into the stack after the
> holdout and then feed that into the pgBokeh.
>
> But yeah, the recolor gives nans because one alpha is full, uncut, while
> the other is cut. I wish the recolor had some options to choose which alpha
> to use or something, or to do no alpha operations. Otherwise it works just
> fine between the deep and regular uncut rgba.
>
> And yeah I was surprised to find out you loose the deep values after a
> holdout, and I really hope they provide something soon in an update.
> Anyways, any other ideas?
>
> Thanks again,
> Adam
>
>
> On 07/11/2012 05:49 PM, Denis SCOLAN wrote:
>
> Hi Adam,
>
> If you are trying to copy the color values of a 3D render on its own deep
> opacity you should use the deep recolor node for sure.
> The reasons why you have artifact is because your deep opacity isn't
> matching at 100% the alpha channel of your 3d render.
> If you ping-pong between the deep opacity and the alpha you'll see a
> difference.
> Why ? Because the filter setting you've got on your render
> (Blackman-Harris, Mitchell, etc.) aren't the same than the deep image
> filter.
> Basically the only filter that is the same for both is Box filter.
> So why do you have artifacts ? To understand that issue you have to know
> that the deep recolor is doing an Unpremult of your 3D render and then
> "multiply" it by the opacity level of the deep stream.
> It's like if you are repremultiplying a 3d render in Nuke with different
> alpha than the original... you'll have edges artifacts. Well, it is the
> same for deep stream.
> Here is a way to avoid this issue :
> Before plug 2D stream into the deep stream with a deep recolor, just do an
> unpremultiplacation test to see if you don't have illegal values (negative
> valus, nan, extremly high values).
> Then I strongly recommend to really do the unpremultiplication before and
> then the trick is to use the "alpha" of the deep image (with a deeptoimage)
> to remultiply the image before plugin it into the deep recolor node.
> It's a bit of an overkill but it works perfectly well.
>
> For the deepholdout question, in  the current state of Nuke you can't have
> a deep stream after the deep holdout.
> But I'm sure Nuke will do it in the future.
>
> I hope it helps.
>
> Denis.
> - FuelVFX
>
>
> 2012/7/12 Adam Hazard <[email protected]>
>
>> Hi,
>>
>> Anyone know if it is possible to copy deep values, and add them into a
>> non deep image? Maybe something like
>> image>deepFromImage>deepExpression(with copied deep values from a deep
>> read)?  Deep recolor doesn't seem to be doing the trick and is adding some
>> edge artifacts and nans.
>>
>> Or on the other hand, and slightly related, if it is possible to some how
>> keep deep information after a deep holdout?
>> Thanks for any help.
>>
>> -Adam
>> _______________________________________________
>> Nuke-users mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>
>
>
> _______________________________________________
> Nuke-users mailing [email protected], 
> http://forums.thefoundry.co.uk/http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
>
>
> _______________________________________________
> Nuke-users mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

Reply via email to