home about gallery publications education links contact


..::ice comet::..

For this scene to be effective, we need to design and construct a decent ice material, and the best way to do this is to utilise mental ray’s sub surface scattering materials; the lower spec Fast Material will suffice for this particular Q&A, but you may want to look into using the SSS Physical Material later on should you want to adapt the scene to your own needs. The main crux of this Q&A is about creating the fragments the geometry animation is already set up; more on that later. As the main chunks of ice will split and relocate, you will need to set up custom fragment particles of varying sizes between the cracks and have them interact with the main surface geometry and each other. Obviously due to the polygon count of the ice this isn’t really feasible, so lower resolution referenced geometry is used (courtesy of the MultiRes modifier) to speed up particle-geometry interaction.

I have included a substantial amount of the construction for you, namely the shape of the main comet / asteroid geometry, materials (including a UK map courtesy of NASA) and background elements. Now that isn’t to say that you’re getting off easily because we’ve got a large amount of particle wrangling to tackle to create some nice fragments. Be aware that due to the sub surface materials using indirect illumination, you may notice some flickering in the resulting animation. To get around this, increase the amount of Final Gather samples in the Indirect Illumination tab in the Render Setup panel, and possibly the default Number of Samples value in the SSS Fast Materials used to produce the ice effect. Alternatively, you could try binning the Final Gather totally and replace it with a lighting rig setup. This will take a little bit of work, but will result in faster render times and no flickering.

For those of you with lower spec’d machines who are possibly running out of memory due to the geometry count, you may want to reduce the Lightmap size value in the Ice Particles material so that a smaller map is generated by mental ray, therefore reducing the memory overhead, though obviously this will lead to some inaccuracy in the sub surface scattering effect. I have also left the Modifier Stack of the ice geometry intact so you can amend the polygon count, though bear in mind that you will have to re-calculate and edit the values of the MultiRes modifiers and re-assign the Edit Poly modifiers polygon selection that drive the particle emissions.

Enlarge Screenshot Open up the Comet_Start.max file included in the resources file. Accept any file unit change that may pop up so that we are all dealing with the same unit setup as we are dealing with procedural maps and materials in this scene. In this scene we have several objects already set up including the main comet geometry and animation, camera (with animation), background objects, volumetrics and an Omni light for the sun! Whew!
Enlarge Screenshot The comet geometry has been sculpted using two Displace modifiers nested within the ProBoolean object. At this stage, be warned that if you amend the maps or navigate down through the ProBoolean operand stack that the Boolean that cuts the geometry into its chunks will automatically re-calculate.
Enlarge Screenshot This will result in the MultiRes modifiers needing to be re-calculated in the deflector reference copies so that the sub-object selection in the Edit Poly modifiers of the emitter reference copies will correctly work. If you decide to change the polygon amounts in the base geometry you will need to reset the Edit Poly modifiers; remove the exiting one and add a new one - you can easily re-select the polygons by using the Select By SG (Smoothing Group) feature in the Edit Poly’s Polygon Properties rollout.
Enlarge Screenshot These modifiers work on existing mapping set by the base object’s UVW Map modifier, therefore the procedural maps used to displace the geometry are set to Explicit Map Channel. The initial Displace modifier simply indents the geometry, creating crater pits; designed with a Cellular map in the Material Editor.
Enlarge Screenshot The second Displace modifier also uses this crater map setup, however it has additional detail added to create texture in the displacement around the surface of the geometry. This detail is generated by nested sub-maps; Cellular maps with smaller sizes and different Spread values to create subtle indentations in the geometry, but also to create a positive displacement in the geometry around the edges of craters.
Enlarge Screenshot If you aren’t confident about not accidentally changing the modifiers or displacement maps, please collapse the geometry or load in the comet_start_collapsed.max file. In whatever scene you use, create a UDeflector Space Warps in the Top Viewport and label it UDeflector_A. Click on the Pick Object button and choose the comet_A_deflector object. Set its Bounce to 0.25, Variation and Chaos to 25. Create another two UDeflector Space Warps and label and perform the same action for the other two comet deflector geometry in the scene (B & C).
Enlarge Screenshot In the Top Viewport, create a Geosphere primitive with a Radius of 10 and 10 Segments and label it Frag01. Add a Noise modifier to it and set the Seed value to 1. Set the Scale to 75, enable Fractal and set the Strength values to 30 for all three axes. Add an Optimize modifier and set its Face Thresh value to 20. Add a Smooth modifier. Enable Auto Smooth and set the Threshold value to 15 to create some faceted geometry.
Enlarge Screenshot Copy the Frag01 object three more times and change the Seed value in the Noise modifier to values 2, 3 and 4 respectfully. Create a Box primitive with a Length of 25, Width of 10 and Height of 5 and set its Length and Width Segs to 10 and Height Segs to 2. Label it Frag_Shard01.
Enlarge Screenshot Add a Noise modifier to it and set the Scale value to 70. Enable Fractal and set the Strength to 50 for the X and Y axes and 20 for the Z axis. Add an Optimize modifier and set its Face Thresh value to 20. Add a Relax modifier to smooth out any overlapping faces. Add a Smooth modifier. Enable Auto Smooth and set the Threshold value to 15.
Enlarge Screenshot Select all of the Debris objects, go to the Heirarchy tab and click on the Affect Pivot Only button. Click on the Center to Object button in the Alignment group to centre the object’s pivot points. Click on the Affect Pivot Only button again to close it. Select the Frag02, Frag02, Frag04 and Frag_Shard01 geometry and link these objects to the Debris01 object. This is so that the particle system we will create next can reference more than one object as its particle shape.
Enlarge Screenshot In this Top Viewport, create a PF Source icon. In the Modifier tab, set Viewport % in the Quantity Multiplier group to 10 to improve Viewport performance. Expand the System Management rollout and set the Upper Limit to 10000000 so we can have more particles in the scene if necessary! Set the Render Integration Step to Frame and click on the Particle View icon to open up the Particle View event display.
Enlarge Screenshot Rename Event 01 as Small Debris. In the Birth operator, set the Emit Start and Emit Stop to 101 and the Amount to 2000 so that the particles are born just after the comet “splits”. Replace the Position Icon operator with a Position Object operator and add the comet_emitter objects to the Emitter Objects list. Enable Inherit Emitter Movement and set the Variation to 50 so the particles are thrown from the emitter geometry.
Enlarge Screenshot In the Location group, choose Selected Faces to get the particles to emit from the geometry inside the comet. Finally, enable Delete Particles in the If Location Is Invalid group to remove any wayward particles that may be positioned incorrectly. Remove the Speed operator. In the Shape operator, set the Shape to Cube and set the Size to 1. Add a Scale operator and disable Constrain Proportions in the Scale Factor group and set its Z value to 10 to squish the particle fragments down.
Enlarge Screenshot Set the Scale Variation to 100 for all three axes. Add another Scale operator, set it to Relative First and set the Scale Variation to 100 for all axes to add more variation to the scale size. Add a Keep Apart operator to force the particles to interact with each other and set the Accel Limit to 2000. Choose Relative to Particle Size and set the Core % to 100 and Falloff to 0 so that there is a more abrupt change in direction on “collision”.
Enlarge Screenshot In the Scope group choose Current Particle system so all the small particles interact with other particles. Add a Spin operator and set the Spin Rate to 300 with a Variation of 150 and set the Spin Axis to Speed Space Follow. Add a Collision test to the event and add the UDeflector Space Warps to its Deflectors list. Add a Spawn test to the Particle View event display and label the new event Debris Impacts
Enlarge Screenshot Set its Offspring to 5 with a Variation of 100. In the Speed group, set the Variation to 25 and in the Size group set the Scale Factor and Variation to 50. Instance the Keep Apart, Spin and Collision operators to this new event to inherit the same rotation and spin properties. Wire the input of this event to the output of the Collision test in the Small Debris event .
Enlarge Screenshot Copy the Small Debris event to create a new event, label the new one Small Frags and wire it to the output of the PF Source 01 event. In this new event, set the Birth’s Amount value to 200. In the Position operator’s Uniqueness group, click on the New button to get a new Seed value to emit the particles from a different location. Replace the Shape operator with a Shape Instance operator. In its Particle Geometry Object group, click on the “None” button and choose the Frag01 object.
Enlarge Screenshot To randomly select one of its linked objects, enable Object And Children in the Separate Particles for: group. Set its Scale to 50 with a Variation of 25. Set the Keep Apart’s Accel Limit to 1000. Remove the Scale operators from the event and set the Spin operator’s Spin Rate to 200 with a Variation of 100. Instance the Spawn test from the Small Debris Impacts to the event display to create a new event. Label the event Small Frags Impacts.
Enlarge Screenshot Instance the Keep Apart, Spin and Collision operators from the Small Frags event and wire the output from the Small Frags Collision test to the input of this new event. Instance Shape, both Scales, Keep Apart, Spin and Collision from the Small Debris event to the event display to create a new event and label it Debris Impacts B. Wire the input of this event to the output of the Spawn test in the Small Frags Impacts event.
Enlarge Screenshot Copy the Small Frags event to create a new event, wire it up and label the new one Medium Frags. In this new event, set the Birth’s Amount value to 100. In the Position operator, hit the New seed button. In the Shape Instance operator, set its Scale to 100 with a Variation of 75. Set the Keep Apart’s Accel Limit to 500. Set the Spin operator’s Spin Rate to 100 with a Variation of 50. Instance the Spawn test from the Debris Impacts to the event display to create a new event.
Enlarge Screenshot Label the event Medium Frags Impacts. Instance the Keep Apart, Spin and Collision operators from the Medium Frags event and wire the output from the Medium Frags Collision test to the input of this new event, and wire the output of this new event’s Spawn test to the input of the Debris Impacts B event..
Enlarge Screenshot Copy the Medium Frags event to create a new event and label the new one Large Frags and wire up as illustrated. Set the Birth’s Amount value to 2. In the Shape Instance operator, set its Scale to 150 with a Variation of 50. Remove the Keep Apart operator. Set the Spin operator’s Spin Rate to 50 with a Variation of 25. Instance the Spawn test from the Debris Impacts to the event display to create a new event.
Enlarge Screenshot Label the event Large Frags Impacts and wire up as before. Instance the Spin and Collision operators from the Large Frags event and wire the output from the Large Frags Collision test to the input of this new event, and wire the output of this new event’s Spawn test to the input of the Debris Impacts B event. All of this wiring ensures that when a particles hits a deflector it creates additional debris, which is shaped and behaves like the Small Debris.
Enlarge Screenshot Add a Material Static operator to the PF Source 01 event and instance the Ice Particles material in the Material Editor to the material slot in the operator. Select the Comet_A, Comet_B and Comet_C objects in the scene and assign the Ice Geometry material to them. The reason we have two different materials is that the “geometry” version has the entire displacement map used as a bump map within its Bump shader, which obviously wouldn’t work correctly with the particles and would also bring up mapping errors! The material itself is quite straight-forward; simply mixing distance values and weighting of the main diffuse colour and the sub surface colours! Finally, hide the debris geometry and render off the sequence; I’ve already enabled Final Gathering for cross-version compatibility. In the Finished scene I’ve also amended the Keep Apart operators so that larger particles aren’t affected by smaller ones by selective event assignment.
Download the max file! RAR file to accompany (NOTE: 72mb file)

Initially published: 3D World magazine, Issue 107, October 2008.

Copyright © Pete Draper, October 2008. Reproduction without permission prohibited.

www.xenomorphic.co.uk