chaindriver Posted September 15, 2012 Share Posted September 15, 2012 Hi, I'm trying to figure out ROP dependencies. Say I have two geometry caches that I need to cache frame by frame. After this is done for the whole frame range, I would like to cache two other geometry caches frame by frame. How should I link up the ROP network to do this? Quote Link to comment Share on other sites More sharing options...
malexander Posted September 15, 2012 Share Posted September 15, 2012 cache1 cache2 cache3 cache4 \ / \ / merge merge | / batch +---------+ \ | . prepost This will make cache3 and cache4 dependent on the entire frame range of cache1 and cache2. If the frame ranges of cache1 and cache2 are smaller than the range you're rendering, you can set their frame mode to be "Frame Range (strict)" and no frames outside the range you specify will be rendered. For example, this will produce the following for frames 1-10 (-f 1 10 1) when interleaved (-I). -p prints the results rather than executing the ROPs. / -> render -I -p -f 1 10 1 /obj/ropnet1/prepost1 1 [ ] cache1 1 2 3 4 5 6 7 8 9 10 2 [ ] cache2 1 2 3 4 5 6 7 8 9 10 3 [ 1 2 ] cache3 1 4 [ 1 2 ] cache4 1 5 [ 1 2 ] cache3 2 6 [ 1 2 ] cache4 2 7 [ 1 2 ] cache3 3 8 [ 1 2 ] cache4 3 9 [ 1 2 ] cache3 4 10 [ 1 2 ] cache4 4 11 [ 1 2 ] cache3 5 12 [ 1 2 ] cache4 5 13 [ 1 2 ] cache3 6 14 [ 1 2 ] cache4 6 15 [ 1 2 ] cache3 7 16 [ 1 2 ] cache4 7 17 [ 1 2 ] cache3 8 18 [ 1 2 ] cache4 8 19 [ 1 2 ] cache3 9 20 [ 1 2 ] cache4 9 21 [ 1 2 ] cache3 10 22 [ 1 2 ] cache4 10 The first number is the ID of the job, the numbers in square brackets are the job IDs they are dependent on, and the last number is the frame to be rendered. If you need cache2 to be dependent on cache1 instead, remove the merge and wire cache1 as the input of cache 2: cache1 | cache2 | batch +---- etc. \ | prepost Think of merge as allowing its inputs to render in parallel (no dependencies), while making a ROP an input a second ROP implies serial rendering. Quote Link to comment Share on other sites More sharing options...
chaindriver Posted September 15, 2012 Author Share Posted September 15, 2012 Thanks so much for the awesome detailed reply Mark! I've tried it out and it works like how you have mentioned. One small question left though: Using your method, is it possible to get cache1 and cache2 to run frame by frame? Right now they have to run node by node because of the batch node below, it seems. Quote Link to comment Share on other sites More sharing options...
malexander Posted September 15, 2012 Share Posted September 15, 2012 There's currently no way to interleave frames in a prepost's Pre or Post inputs. An "interleave frames" toggle would need to be added for each input. Quote Link to comment Share on other sites More sharing options...
chaindriver Posted September 16, 2012 Author Share Posted September 16, 2012 I see. Not a big issue, what you have mentioned is sufficient for now. Thanks for the replies! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.