Here’s a quick example of a number of handy tricks in ICE.
A compound I shared earlier on the softimage mailing list is used to create a grid of particles on a camera plane at a definable resolution, as if each particle was a pixel. The basic camera attributes like FOV etc are respected. This bit uses a little simple trig to identify the corners of the camera frustum at any distance from the camera, which can be incredibly useful. I’ll try to make some time to go over this in a future post.
A simple raycast is then used to project particles onto geometry and to color those particles based on the depth of the projection.
A lot can be done with the (super) simple techniques in this scene, trust me. Perhaps the simplest and yet most useful is to cull particles outside the camera frustum prior to writing a cache – if you are dealing with a shot that has a locked down camera this can be used to reduce cache data by massive amounts. If you are dealing with a stereo production and have access to depth maps, you can use that information to cull particles which are “behind” footage elements, or even have particles react to the “surface” of footage elements. Very cool! Knowing where a particle or object is in camera “screen-space” is easy and has a lot of use, too.
File: Softimage 2013, ~2.5MB example_cameraDataInICE