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 <co...@peregrinelabs.com> 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 >> <co...@peregrinelabs.com> 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 >> Nuke-dev@support.thefoundry.co.uk, 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 Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev