In cases where there are two level entities, one in front of the wall and the other behind it, guitar's method can work by using the geometry in his level to occlude the entities when they step behind objects. However, this is limited to cases where the image in the panels is a render of the level geometry at the same polygon count. (If he is not doing this, then you are right that he should use very simple stand-in geometry for collisions.)

My purpose for using panels is to use hand-drawn images or high poly count renders (souped up with radiosity and the like), and for this purpose, my stand-in level geometry cannot occlude correctly (at the sort of poly counts that can be rendered in real time).

There's a variation on that that might work, however. Have a view rendering entities in front of the wall to one panel and another view (positioned identically) rendering entities behind the wall to another panel. Then, arrange the layers for these panels versus the background and wall panels.

If an entity moves in front of the wall, it must switch views so that it is rendered to the panel in front of the wall. This should be possible using render_view to change the entity's material. Hopefully, the frame rate hit won't be too bad, since entities should only ever be visible in one view per frame.

I don't like that I will need n views per level, where n is the number of possible layers for the entity. I'm going to end up needing view_remove (which guitar requested not too long ago).

Of course, camera-independent sky entities or very precisely scaled sprites get around the problem entirely by virtue of being in the level and having transparency channels.

Last edited by lyingmime; 08/03/07 06:12.