Notifications
Clear all

[Closed] extract node channel

Hi, I’m a bit lost here, I’m writing a script to save out the Node ID as you would a render element, into a separate bitmap (as node doesnt appear to be a channel you can save with render elements) but the only way I’ve found is to use getchannelasmask. which creates a greyscale version of the nodeID – I need it in all those luverly colours you see in the VFB. if I iterate through all the pixels with Getchannel it returns an array of objects (which is fair enough I suppose) but I just want them colours…

any ideas?

4 Replies
1 Reply
(@hblan)
Joined: 11 months ago

Posts: 0

i dont understand what u need exactly , i think getting the all colors is not ur final aim .

there has many ways to make it if i know what u exactly want to do .

let me know ?

what I need is for max to save out the Node ID channel (#node) as a colour bitmap. I can save it out in an RPF, open it in combustion & use the show G Buffer op to bring up the node channel then output that as an image sequence, but its too much work for the size of the project.

essentially what I need is an image sequence where each object is assigned a different colour to differentiate them from one another. I can make a script to assign every object a random colour & render that, but it seems pointless, as thats how the Node channel comes out anyway. & it will add a new step to scene management, as that scene will have to be saved separately to the diffuse pass. I cant find a way of just saving that image channel to disk, as its displayed in the VFB

I don’t get it Chris, nodeID is a render element, and will provide you with exactly what you get in an RPF file.
Did you remember to assign an individual G-Buffer ID to each object?
Indeed, you could write a sciprt with ‘getchannelsasmask’ but you really don’t need to

Josh.

I was hoping it would be, I’ve got Object ID of course (which creates something similar to Render Node ID if you set object ID channels, except it is antialiased, – the scenes this will be working on have thousands of individual objects however) The Render Node ID channel isnt in my list of output channels for render elements.

As a workaround I’ve got a script that stores all the scenes materials, replaces them with random colours, renders without antialiasing & restores the materials back again – but its going to be s-l-o-w on the scenes we will be getting. The Render Node ID channel stores exactly the info I need when you output an RPF, but getchannelmask returns a greyscale image…