Projection through fog pre-vis

Hi gang,

Wondering if anyone has any insights on good ways to pre-vis a hazy projection installation. In the past I’ve built content and tested it on site, but it would be way more efficient to be able to pre-vis it. Not really finding efficient TD methods. Unreal engine maybe? WYSIWYG? Some way to punch a projection-mapped light through some dense geometry?

There are ways to fake it, I’ve attached a very quick and dirty example of one method using a particle system, light, and very slightly modified phong:
basicVolumetricsViaParticleSystem.1.toe (8.7 KB)

It’s using a box sop, to create a voxel grid of particles, and then lighting that, and blurring it in post a bit. the single spot light if moved behind the wall enough can match the screen’s width/height. You’ll need to make sure no particles exist behind the screen, as depth testing in this example doesn’t really work. So, it’s finicky at best!

Unfortunately there’s no quick or easy way to accomplish true volumetric rendering in Touch. You’ll have to build your own.

True volumetric effects are usually created through a process called ray marching. This means you take the pixels location in 3d space, and march it forwards, away from the camera in small increments, and every time you stop and ask what is the color and intensity of the light source[s] at this location.

After stepping through the scene a number of times, usually until you hit a wall or have hit a predefined max number of steps you sum the total light contribution and then normalize it, or pass it through a tone mapping function etc.

Usually this is done with spot lights, or point lights. but these are punctual lights, the source of light is infinitely small. So to mimic a wall of light you’d need a dense array of point or spot lights to make it look passable. Then it gets quite heavy to compute too because lighting gets expensive as it’s done on a per pixel basis. (num pixels * num lights * other stuff)

To create this effect for a video wall, aka a rectangle I’ve read about (but not implemented yet) the ability to generate U/V coordinates within a rectangular area light, and use that to sample a texture for really high quality area lighting. I’ve seen it done via three.js, but have not dug into it yet.

Anyways hope this helps!

1 Like