« xsi ICE cell noise
» ambient cube CG realtime shader


3d power texture lookup

01.04.09 | 3 Comments

I hesitate to call this a power lookup, for want of a better name.

ICE power lookup into an fBm field

ICE power-lookup into an fBm field

It’s not power, as in POWAH. It’s power, as in exponent. I’m sure the enkling can help me find a better name.

This 3d texture warp is great for creating a procedural effect for something like a billowing cloud.

These experiments use a 3d cube of xsi ICE particles, with a density function made by looking-up into noise intersected with a soft falloff sphere.

I started playing with this after enkling showed me a wicked puff-ball type noise lookup that maya can do in it’s fluid field system. I want to make a renderman volume shader that replicates this cool 3d texture warp.

To do the noise lookup, i take the particle position (with an animated offset in 3d space), calc the vector length according to a warp center to create a local position, expound it by a power (enk says -1 is nice) then mult by a normalised copy of the local position and then use this to lookup the noise.

To lookup into the “Turbulize Value By Range” node, i had to edit its compound to allow me to plug in a custom vector into its Turbulence node (it originally has a “Get Particle Position” node driving its coordinate lookup). I offset the particleposition by a vector with an animated Y value to get the effect of a billowing cloud.

The power lookup ICE tree:

xsi ICE power lookup tree

xsi ICE power lookup tree

Here are some Vimeos of the offset power lookup in action:

xsi ICE turbulate power lookup from benp on Vimeo.

xsi ICE cell noise power lookup from benp on Vimeo.

This last video uses my cell noise ICE node from this post.

Both of these examples use a particle cube of 100×100x100 particles. That’s 1 million particles, for the mental-arithmetically challenged. Because the cell noise version is so heavy, and unoptimised, its ICE tree updated at about 0.5 frames a second.

These videos are also OGL captures straight from the xsi viewport! Using many particles, displayed as camera-aligned rectangles gives a really good impression of a 3d volume.

I’m sure the ray-marched renderman volume shader will be much slower though.

All in all, ICE has turned out to be quite a nice tool for visualising volume density functions. I hope one day we’ll have a specialised volume set viewer in xsi that can be modified in ICE.

Tags: , , , ,


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

« xsi ICE cell noise
» ambient cube CG realtime shader