A suite of custom technologies for real-time apps.

Middleware for Unity.

 

We have implemented many custom technologies for Unity that have proven crucial to our projects. These are modular components that can be used together or separately.

Below is a selection of the ones we think have the highest potential to be useful in any project.

 
730593e00810155d27fc54405d6b11c4.gif

GPU Raycaster.

Raycasting against animated meshes in Unity is a tricky business - either you have use proxy colliders (which reduce precision as they don't conform exactly to the mesh), or you have to continuously update a mesh collider, which takes a lot of processing power and significantly reduces framerates.

We have implemented a custom raycaster that solves these problems by utilizing the incredible parallel computation power of GPUs. Our raycaster can cast hundreds of rays onto animated meshes while still maintaining excellent framerates. No proxy or mesh colliders are required.

5043817be48f2f4fdf9d14b5231125a1.gif

Delta mush.

Delta mush is an algorithm operating on a mesh to filter out undesirable artifacts that may happen after the skinning process. We have implemented this algorithm in Unity.

What's special about our implementation is that not only are you able to use it in real time, but you can also generate corrective blend shapes from it (at runtime), so you don't need to spare any extra processing for the delta mush process. Furthermore, unlike other implementations, ours doesn't suffer from the undesirable smoothing problems that come from operating on a triangle mesh. Our solution produces the same results as if it was operated on a quad mesh.

7c7a59c562f233dfa4c621ac676f3560.gif

Dither fading.

Blending meshes into each other can be a very difficult thing to do, especially in deferred rendering as it doesn't support transparency. In forward rendering, you are able to use transparency. However, transparency comes with its own set of challenges, such as problems with Z order (as a result of triangle order) and object order (in regards to depth). However, there is a solution!

We have implemented a dithering fade tech made for the built-in rendering pipeline in Unity. Since no transparency is used, it works in deferred rendering!

c5e1c0a03b421302dad1ab86bf01acb5.gif

VDM Projection.

VDM stands for "Vector Displacement Mapping" and is a technique for describing 3D models inside a 2D texture. Since a 2D texture can be projected, this means we can essentially project a 3D model onto any surface!

We have implemented a custom VDM projector in Unity that can achieve exactly this.

973f12acad367aaac4e8169454abddf8.gif

Stencil extraction.

With our stencil extraction tech you can mask out any object in your scenes. This can be useful for many things, such as applying special effects onto specific objects as a post processing filter.

This tech is very optimized and doesn’t require re-rendering of the scene. It’s all handled in a few blit operations.

a2a60622e6712aa251431e3880f39961.gif

Click depth.

Have you ever wanted to retrieve a pixel perfect world position from a point on the screen, without relying on colliders? Well, now you can!

With our solution, you don't need any colliders or any raycasting what so ever. We can retrieve a high precision world space position by extracting it directly from the camera data. Our solution is super optimized and doesn't require any blocking to retrieve pixel data. It's all handled asynchronously without affecting framerates.