BoxClip is a set of Unity editor scripts and shader includes to allow for the creation of complex non-euclidean rasterized geometry.
This was used to create the "impossible space" Selphina booth in the Vket4 Mirabilis Flor world.
No stencils are used! This technique has minimal overdraw.
Description here: https://booth.pm/en/items/2033623
Tried it? Having trouble? Please say hello to Lyuma#0781 or xnlyuma@gmail.com - I love to see any questions or feedback you may have!
- Clipping is done both in Geometry and Fragment stages for high efficiency even in large scenes.
- All content can be drawn in one pass, and no render queue manipulation is needed.
- Support showing and hiding rects.
- Support "ZCompress" - allows geometry to be compressed onto a plane. (Note: ZCompress does not handle borders well. Please leave extra room.)
- Real-time editing using MaterialPropertyBlock (Udon support is planned)
- Baking an efficient shader for upload.
- Supports "ShowVolume" and "HideVolume" to reveal things within a volume rather than "through a window"
- Supports "ShowCameraWithin" and "HideCameraWithin" to reveal the whole object when your camera is inside this volume.
- Import an object.
- Create a new empty game object. Add a BoxClipOrigin component. Make another empty object, set this as the Origin.
- Create a new folder and set the folder as the Generated asset dir.
- Insert all objects to the "List of Renderers"
- Click Preview.
- Find the Show and Hide child objects, and create a new empty game object inside. These boxes will allow your object to be seen, or to be obscured.
- Move, rotate and scale empty game objects within Show and Hide to control clipping regions.
- You must click Bake To Shader when done editing, in order to upload to VRChat.
- Workaround issues in locales which use commas.
- Performance fixes related to geometry culling.
- Added ShowVolume and HideVolume to reveal and hide what is contained in a 3d Volume.
- Added ShowCameraWithin and HideCameraWithin to reveal the object.
- Fix Bake To Shader getting mixed up on upload when multiple BoxClipOrigin scripts are present.
- Add checkbox "Scale Clip Planes". Use this with a "Scale" setting of 1000, and with mesh transform scale set to 0.001. This will make large models invisible when avatar shaders are blocked.