Portaling

Seamless world portals that can be placed either dynamically or statically to connect two separate regions inside a scene. Objects traversing the portals conserve their velocity and portals can be placed on moving surfaces and will alter the velocity of any object traversing them.

Currently features:

- Seamless world portals
- Portal recursion
- Smooth portal camera transition
- Velocity is maintained during the transition
- (WIP) Virtual Reality support on major OpenVR/SteamVR supported platforms.
- Portals can be placed on moving surfaces
- SkinnedMeshRenderers and animations are supported
- Moving portals will conserve velocity and will transfer it to transiting objects
- Additional features are included such as the PortalRaycast, a special Raycast that takes every portal in the scene into account. It also supports recursions.
- Portals won't render if they are not visible
- Portals support both a local and global downscale to improve performance on every system
- Portals can be set to never render anything at all or to only render when the camera is effectively transiting.
- Every effect can also be toggled on or off, a disabled effect will not be processed in any way.
- Objects transiting portals will collide with anything placed in front of the target portal
- The design of the portals is modular and allows for the creation of additional behaviour.
- CharacterController support.
- Support for compound colliders.
- Multiple POVs supported.

Current limitations:

- Fog and other depth-based effects will not work with portals. This is still being investigated.
- Concave mesh colliders are not allowed in the scene, though this is being worked on.
- Portal recursion is not currently supported on mobile. This is also being worked on.
- Single-pass Virtual Reality not supported. This will eventually be implemented.