I’m working on a digital production that uses a front plate/back plate render scheme, and I would like to utilize the camera clip plane function of the select render layer to move sections of a particle cloud from the front plane to the back plane of the render based on each particle’s location. I’ve attached an example dfx where if things worked how I imagine they should (please correct me if I’m wrong), then you would see red and purple particles on the front plate but green and blue particles on the back plate. One work around I’ve found is by using a clone to particles system and just recreating the particles as thousands of tiny spheres. This seems to use more resources though and isn’t ideal. I have yet to test how other systems (fields, procedurals) function in this respect.
It would also be really nice to have a camera selection option for the camera clip plane so I can link it to a specific camera instead of it always defaulting to the active camera (so I can look around without clipped objects flipping between planes), and a clip crossfade option so objects don’t jump so abruptly from front plane to back plane or vice versa.
Any ideas or help much appreciated!
SelectRenderLayerParticles.dfx (309.8 KB)
Just tested procedurals. It looks like it determines front/back plate for the entire system based on the center position of the renderer node (procedural meshing in this case). It would be much more useful if just the sections of the procedural meshing that were in front or behind the clip plane were placed on the front or back plane so parts of the procedural mesh could be in front of the viewer while other parts could be behind.
In the case of the particles, " Select Render Layer For Child Nodes" only seems to work with geometry/3D Objects, so that doesn’t include a Point Renderer.
Try using a “Clone to Particles” with tiny, very low subdivision Shape 3D spheres, to essentially create a 3D model out of your particle system and the Camera Clipping seems to work, to hide/show part of the particles according to their depth.
I figured that was the case. I actually found that workaround as well, which I mentioned in the OP. But I’m finding that it’s not just particles. Select render layer doesn’t work with fields or procedurals as well, and there’s no workaround for those. It’s not a very useful feature if it ignores 3/4 simulators in the software. I wish they worked sort of like Kill boxes, but for just one layer. Maybe I’ll try that as a workaround.
Oops, more time spend on checking the dfx file than actually reading your original message. Sorry about that.
Hey no worries, I’m happy for the discourse. There aren’t too many people I can talk to about this, so even just a few replies is super helpful for thinking through the problem. Cheers
As you’ve worked out, not all processes can be split between front plate / back plate easily. There’s various reasons for this, essentially Objects can only be moved between the front and back plate whole. This works for Cloner systems as each clone can be evaluated individually, but a procedural system is a singular mesh - so you can move the whole thing forward and back but you can’t differentiate between sub chunks.
This is the same for a field system and particle system, Select Render Layer For Child Nodes works for geometry only so it can’t look at e.g a field and cull certain parts of it. needs to be done whole.
The weird part is that you can’t even select which render layer the particle system inhabits. It is automatically copied onto both front plate and back plate regardless of select render layer settings. The only way I can figure out to render it on only one layer is to attach it to the root node, which prevents it from rendering in the render layer. But even then, I can’t make the system move between front plate and back plate. It would be great if the select render layer would somehow turn alpha to zero on the particles or act like a rendering bounding box for all particles outside the camera clip plane threshold.
Trying it out now, the workaround would seem to be to split the rendering into three layers. One front PS, one content, and one back PS. Using a kill box for each of the renderers with different offsets will give you separation of front and back. With the same emitter and affector connected the data for each particle stays the same for the different renderers.
Using a render layer for the center content as well will enable you to set the composition order in the render layer nodes to prevent rendering a PS in the back on top of the content.
Note that to view it from any other camera position than the front you’ll have to either adjust the rotation of the PS/Kill boxes manually - or do some calculations from the cameras positional vector to polar coordinates
Hey guys, just continuing to update here as I experiment further. It looks like .c4d scenes are not supported by select render layer either, though .obj objects are. I’ll keep posting the more I play around. Hopefully we can get improvements here because I really love this feature!
It looks like something about the chunk deformer being attached to an obj prevents the select render layer node from working too. Any obj with chunk deformer attached renders in both layers, similar to particle systems
Just a couple comments - I tested C4D files and they look fine to me, meshes swap front to back. Do you have an example in particular?
Chunk Effector was a good find, I’ve passed that onto the dev team to look at.
Ah, you’re right I didn’t mean to post the one about .c4d scenes. Further testing revealed that it was the chunk effector I had connected to the .c4d scenes that was preventing them from working correctly.