Greetings Abigail and The Foundry, I have just read this thread, and it is of high interest to me. I may have sent an e-mail several months ago dealing with a similar issue, but got pulled away from Nuke for quite some time.
I am particularly interested in the comment about Nuke skipping the calls the _request and engine if the requested channels are entirely disjoint with the out_channels. (I actually found reference to this somewhere in the documentation, mentioning something about the intersection of in_channels and out_channels) I have been developing a node whose input contains only a Zdepth channel, but whose output is RGBA. Yes, the node functions but not very nicely within the Nuke interface. The node will only update when the viewer input is changed to Zdepth (which must trigger a proper "read") and back to RGBA ( so that I can see the desired output ). This makes the node, well, useless to an artist and leads to the following question : What is the proper method for dealing with this situation ? It is desired that the node update when knob values or time is changed without having to fiddle with the viewer settings. A "workaround" that has been implemented has the node reading "alpha" instead of "zdepth". A shuffle node follows the input image, shuffling depth to alpha, and a remove node then removes the depth channel. Ideally I would be able to read zdepth and output rgba. Setting the out_channels to rgbaz still requires the viewer to be set to zdepth, and back to rgba for proper update. Suggestions or guidance on more efficient and effective ways to accomplish conversion of depth to rgba will be greatly appreciated. Thanks, Kent Martin Production Engineer Blue Sky Studios ----- Original Message ----- From: "Abigail Brady" <[email protected]> To: "Nuke plug-in development discussion" <[email protected]> Sent: Wednesday, June 8, 2011 12:41:11 PM Subject: Re: [Nuke-dev] Understanding requested channels... More or less, although doing a separate Row/get for each passthrough channel would be inefficient - just add those to a channelset, and get them at the end, with only the copy in a foreach. On Wed, 8 Jun 2011 12:18:36 -0400, Colin Doncaster <[email protected]> wrote: > Thanks Abigail, > > So - if I understand correctly in engine I have to do > > foreach(z, channels) > { > if (userDesiredChannels.contains( z )) > { > // the plugin does it's thing > } else { > Row source( x, r ); > source.get(input0(), y, x, r, z ); > row.copy(z, source, z, x, r); > } > } > > where channels and row is the parameters of engine? > > > > -- > Colin Doncaster > Peregrine Labs > www.peregrinelabs.com > > On 2011-06-08, at 11:33 AM, Abigail Brady wrote: > >> You need to pass through the extra channels in _request and engine. >> Nuke will skip calling your _request and engine() in some limited >> circumstances, >> like if the requested channels are entirely disjoint with the >> out_channels(), >> but for example, in the case where it's asking for RGBA + creatureRGBA, >> you need to fill in both of them, it won't take your RGBA and then copy >> in creatureRGBA itself. (If it were to start doing that, it would mask >> out the channels you don't need to fill in when it calls >> _request/engine). >> >> On Wed, 8 Jun 2011 10:11:16 -0400, Colin Doncaster >> <[email protected]> wrote: >>> Hi there - >>> >>> I have an op that lets the user specify what channels should be >> affected, >>> let's say RGBA. When _validate is called I set_out_channels to the >> desired >>> channels and in request I input().request the desired channels. I >> assume >>> thus far this is correct? >>> >>> What happens when a user has an input image that contains a >> channel/layer >>> that hasn't been requested by my node? For example, the input image has >>> creatureMatte.r/b/g and I haven't requested them and/or included them in >> my >>> output channels - does nuke just copy them to the output for me, should >> the >>> user expect to those channels to be maintained through the processing of >> my >>> op or do I need to actually use Mask_All on validate and just pass >> through >>> the data in engine if that data is to be retained? >>> >>> If I don't retain it and the user is looking at that channel, what >> happens? >>> >>> Cheers >>> >>> -- >>> Colin Doncaster >>> Peregrine Labs >>> www.peregrinelabs.com >> >> -- >> Abigail Brady, Senior Architect >> The Foundry, 48 Leicester Square, London WC2H 7TW, UK >> Tel: +44 (0)20 7434 0449 * Fax: +44 (0)20 7434 1550 >> Web: www.thefoundry.co.uk >> >> The Foundry Visionmongers Ltd >> Registered in England and Wales No: 4642027 >> _______________________________________________ >> Nuke-dev mailing list >> [email protected], http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev -- Abigail Brady, Senior Architect The Foundry, 48 Leicester Square, London WC2H 7TW, UK Tel: +44 (0)20 7434 0449 * Fax: +44 (0)20 7434 1550 Web: www.thefoundry.co.uk The Foundry Visionmongers Ltd Registered in England and Wales No: 4642027 _______________________________________________ Nuke-dev mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev _______________________________________________ Nuke-dev mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
