We often have to implement and test proprietary or third party technologies during the course of our development process. In some cases we build self contained tests of these technologies and publish them as Labs.
If any of the technologies listed below could benefit your projects please feel free to contact us with any questions or comments.
Flowing Water
April 22nd, 2012Flowing water! We created this water simulator based on the Flow paper by Valve Software: http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf
Instructions
WASD/Arrows: Move around
Mouse: Look around
Left-Mouse: Splat blood into the water
Features
- Vector based water flow, authored inside the Unity Editor, vector fields can be changed at run time too(at a price).
- Surface debris that runs on the current.
- Reflection, refraction and water depth.
- Flowing water colour, comes in two flavours:
Constant: continually pump sewage into the water plane, pump clean water into the system from a pipe, water washing through a pile of rubbish can pick up that tasty green hint.
Dynamic: splat blood on the water surface when that zombie takes a hit, kick up silt as your characters run through shallow water and watch it dissipate.
The Future
- Rigidbodies float in the water and get caught in the current.
- Surface splashes
- Surface foam with density maps
Paint Splatter Surface Effect
December 19th, 2011Controls
- Mouse click / Drag – Paint on surface
- R – Reset
Features
- Any renderable object can act as a brush, by default particles are used.
- Paint effect based on particles, any way a a particle can be moved, the paint will spread.
- Approximated/Implicit paint physics, paint slides down walls, drips off roofs and pools on floors.
- Per surface control over paint color, paint fade time, paint resolution, camera dimensions.
Limitations
- Flat surfaces only, preferably Unity Planes or similar geometry (see example), Unity planes can be scaled to increase size.
- One paint colour per surface.
Flex Shapes
July 10th, 2011Flex shapes! Shape Keys, Morph targets, Blend Shapes… Take your pick! This lab introduces this feature to Unity in a method that is friendly, flexible and fast.
Features:
- Automatic generation of shape differences from meshes with similar vertex counts.
- Powerful base-line functionality, allows for programmers to choose how flex shapes are animated.
- Split symmetrical shapes into Left and Right asymmetrical shapes, with definable blend width (eg closeMouth_R, closeMouth_L).
- Small memory/storage footprint, only the differences between poses are saved.
- Flex data can be shared between multiple similar meshes.
- Difference shapes are recalculated at tool-time.
- Works cooperatively with Skinned meshes.
- No limit on number of concurrent flex shapes.
The future:
- Decay: points that move less, move slower.
- Flex vertex colours: useful for advanced normal map blending in shaders.
Advanced Ragdolls
April 25th, 2011This feature will allow slightly more advanced ragdolls than are available in Unity.
Features:
- Fully integrated ragdoll: no switching between ragdoll and non-ragdoll rigs.
- Recovery from ragdolled pose to preset animation.
- Ragdoll freeze strength: ragdoll maintains a shape and doesn’t just collapse.
The future:
- Isolate ragdoll to specific bones/bone chains.
- Recover through preset recovery animation (stand up animation).
- Active ragdoll: Play animation while ragdolling.
Ambient Probes
January 27th, 2011This new feature allows the level designer to place ambient light probes into the scene, which create ambient lighting maps at run-time.
Features:
- Designers can choose frequency of probe updates: Once, Time Delta (useful in day/night cycles) or Position Delta (moving probes) with variable granularity.
- Ambient Receivers will choose the closest ambient probe to reference.
- Variable ambient map resolution, blur and saturation.
- Per-probe culling mask.
- The Super-global probe acts as a catch all if no nearby probes can be located, also creates global shader variables for it’s cubemap and power.
- Global probes are for more specific areas.
- Local probes allow ambient probes in rooms and other confined areas.
- Tool-time definable ambient maps (one per probe).
- Plays well with lightmapping, dynamic shadows and image-effects ( so far
) - Custom landscape shader adds landscape ambient sampling (from the super-global probe).
- Time based environment map transitioning
- Usable as ambient (diffuse) or reflective (specular) shaders.
The (possible) future:
- Sample the nearest 1, 2, 3 probes : should eliminate the snapping seen when changing probes.
- Hue and value shift environment maps : more artistic control over ambient maps.
More experiments coming soon!