ID:2358707
 
I've been tinkering around with vis_contents, making a couple of mockups of what a multi z-level rendering system would look like when making use of vis_contents. However, when I tried to combine it with 512's new filter feature, I've encountered a peculiar issue. I cannot for the life of me figure out how to make the contents inside vis_contents render on a different plane to be modified by filters applied to a planemaster. I've tried the KEEP_TOGETHER appearance flag, but the filter applied to the planemaster still doesn't apply to the turf's vis_contents. I've also tried applying filters to the turf itself, but it churned out the same result of the turf's vis_contents not inheriting the filter of its parent.

The inability to modify the plane of an object's vis_contents also results in issues with layering. For example, if I were to add a catwalk object over a turf containing vis_contents, mobs and objects inside that turf's vis_contents will end up rendering over that catwalk object.

So, is there any way I can control the plane that the contents of an object's vis_contents gets rendered on, or is fine control of how vis_contents get rendered simply non-existent as of right now?
This would need to be a feature request. What you're asking isn't currently possible.

I've thought about issues like this myself: how layering and planes could be use effectively when they're always carried over from the original object, not the parent. I really have no idea what would be a good syntax and structure for changing that.

It gets complicated in other ways, too: Suppose those objects have lights attached, and those lights go with a lighting plane? How would you specify that you want the original objects to change planes but for their lights to be unchanged?

But knowing the potential of vis_contents and setups like the one you're trying to do--and rendering multiple Z levels was one of my goals all along--I'm very interested in brainstorming solutions to the problem.
Ah, I see.

The simplest, easiest way I can think of to handle it would be to add separate vis_contents_flags and vis_locs_flags vars. vis_contents_flags could be used to define how contents of vis_contents are rendered in the object, while vis_locs_flags could override how the object/image/overlay/whatever gets rendered when rendering via vis_contents. This should allow things like lighting to continue rendering on the correct plane while also ensuring that regular objects get rendered on the lower z-level plane while inside of a turf's vis_contents.

For example, a turf could have a vis_contents_flags value of INHERIT_PLANE, while a lighting overlay has a vis_locs_flags value of RESET_PLANE. This would make all of the turf's vis_contents inherit its plane, while the lighting overlay will retain it's original plane while inside that turf's vis_contents.