1 of 16

Wund

Unity R&D Review

Sebastian’s Journal

2 of 16

Breakdown of Barbican Systems

For the purposes of this research, we focused on Particle Systems and how we might best reproduce them in Unity using data exported from Houdini.

3 of 16

Splines

We chose to use splines because they are a fundamental part of many MLF experiences, including WUND. They are also likely the most complex system to attempt to reproduce in Unity.

4 of 16

Differences from Eden and Evolver Projects

Main differences between the Barbican/Sanctuary simulation and the Eden simulation is the absence of a pulse force affecting speed and colour of particles, and using a separate set of spline data for xylem and phloem.

Main differences between the Barbican/Sanctuary simulation and the lungs in Evolver (aside from interactivity), are that no “neighbor” information is used.

5 of 16

Splines - Motion

Particles interpolate from one spline point to the next.

6 of 16

Splines - Colour

Particles select their colour by sampling multiple 3D Perlin noises at the position of their spline’s root.��One noise is used to select the base colour from a colour ramp.

A second noise is used to slightly nudge that colour up or down the colour ramp.

A third noise is used to define certain particles as “gold”, setting their colour to gold/white.

Beyond that, a fog color is applied based on the particle’s distance from the camera.

7 of 16

Splines - Scale

Particles scale in as they spawn and scale out as they die (or reach the end of the spline).

Particles also scale down as the camera gets closer to them.

8 of 16

Splines - Spawning at Roots

One major complication was attempting to export data from Houdini about where each spline’s root was.

The solution we landed on was exporting the following data for each spline point:

9 of 16

Splines - Spawning at Roots

10 of 16

Splines - Spawning at Roots

11 of 16

Splines - Houdini Export Data

The attributes we need are computed in a “for each loop”.

Then attributes are exported on different channels (R,G,B,A) on Exr files using the COPs environment

12 of 16

Splines - Houdini Export Data

Point Position and Point Journey Gradient Data

Point Count, Point ID, Point Radius, and Distance to Next Point Data

13 of 16

Splines - Spawning at Roots

14 of 16

Splines - Lighting

Tricking Unity into creating semi-accurate shadows by rotating the particles to face the camera in the update loop before the render loop.

15 of 16

Putting it All Together

10 Million particles

16 of 16

Future Work

Fix issues with Texture Sampling that are causing particles to fly into strange positions.

Use top-right pixel for system-wide data like max points.

Export xylem/phloem Colour ramps as textures.

Debug tools, unique splines and pixels analyse with python to check the export data

Potential different way to get starting points with “if blocks” in Houdini

Test with new splines from Wund assets

Impostor spheres for the particles

Better colour sampling to match Barbican better, especially “gold” particles

Baked lighting?