Slim Templates


Inside/Outside Shading


Translucency Shading


Point Clouds & Brick Maps


Custom Mental Ray Shaders


City Explosion


City Explosion Effect

For my independent assignment, I intend to use my MEL City Generator in conjunction with custom Renderman shaders to create the illusion of an exploding city. A displacement shader will be used to "blast" brickmapped geometry away from the center of the scene. The affected radius will be keyable and coincide with the perimeter of a scaled sphere. The sphere will have a glowing fractal-based shader applied.
Although this type of effect is often created through dynamic simulation, being able to achieve it through shaders would significantly reduce overall processing time (simulation & rendering). In addition, once the fundamentals of the shaders are established, the effect can be used for various environments within a short setup time. Using procedural shaders would also allow the geometry to move closely to the camera without loss of detail and blurring of textures.

Point Cloud Baking Shader
Displacement Shader

Final Explosion Shot

At last, the shot is done! The shader worked very well and additional compositing effects really helped the effect. Special thanks to Malcolm, Mehmet, and Mike. This project was really fun, helped me become more comfortable using Renderman, and inspired some ideas for future projects. The left video is the final shot, and the one on the right has its brightness and levels increased and speed slowed 2x so that the effect is easier to see.
Final Shot --- Hi-Res Version Here

Slow-Mo/High-Contrast Explosion

Trial 4

With most of the technical issues resolved, my objective shifts over to practical application of the shader towards a visual effects shot. For the live-action element, two other students and myself shot some footage outside on top of a parking garage in front of a portable green-screen. To our good fortune, the day was cloudless and the sun was almost directly overhead.
The concept was to place the character onto a ledge overlooking a city. The explosion would start in the distance and rush towards actor Mike, knocking him back. The city was built in different sections for variation, to create multiple explosions with different vectors and timing, and to make smaller brickmaps to solve my bounding box rendering issues.
When shooting the live-action plate, the camera remained stationary on a tripod and I zoomed out away from Mike as he looked around. Camera movement was limited because we didn’t want to have much camera-shake and none of us had ever constructed a camera rig or dolly. However, I realized that because 1) Mike turns slowly and smoothly and 2) the lighting was almost directly above, the illusion of a long camera pan across an expansive city was possible. Also the rendering requirement wouldn’t increase very much for the gain in shot complexity. I was able to reuse my existing brickmaps by just viewing them from different angles.
Although I originally intended to use an expanding sphere for the physical blast, Mehmet Erer and I have decided to incorporate our Houdini work into this shot. I created the two mushroom clouds using sprites. Mehmet will handle the sky and energy blast.
City Rotation & Explosion Test

Live-Action Plate

Modeling Progression

The city rotation test was rendered at 1280 x 853 for additional flexibility when compositing at 720 x 480. Render times varied from 7 minutes to 20 seconds. Some artifacts are apparent and this is due to too small of a sample size when I originally baked out the geometry. Currently I am using six brickmaps which add up to 1.5 GB. Fixing the artifacts would be a simple rebaking task, but deadlines are nearing and they're on screen for a very short time. Besides, Mike will cover up a lot of the city too.
The video to the right is a progression of the city's modeling. I started out with the basic block structure, then added proxy cubes, moved objects relative to the camera’s viewing angle, and then replaced the proxies with more detailed geometry.
The image below to the left shows colored sections of the city which are baked out and referenced through ribboxes. The image to the right shows how the same sections of city were reused for the 180 degree camera rotation.

Trial 3

Light & Displacement Test

After bringing my work into Maya, I baked out my geometry again but this time lit with an HDRI map. The intial baking/rendering time was 13 minutes 10 seconds but subsequent renders using the brickmap took only 19 seconds! Additional lighting tests can be done very quickly now, building upon the HDRI result. Maya's Graph Editor makes it much easier to key the timing of displacement and lighting effects. Also the center of the explosion can be moved or keyed to wherever I want.
Moving Explosion Test

Lighting Test

The image on the left is the original city geometry. After being baked out and referenced, the single cube on the right is all that's necessary to destroy the city with the displacement shader.

Trial 2

For my second trial, I added a second explosion effect to my displacement shader. Now I can essentially fake the shockwave emitted from a blast prior to the visual explosion. I tested this on a very basic scene first and then swapped out the brickmap geometry and tweaked some values.
Test 1

Test 2

Trial 1

Test 1
Km: -1 to -500
Max Dist: 2000

Test 2
Km: -100
Max Dist: 1 to 2000

Test 3
Km: -25 to -500
Max Dist: 1 to 2000

For my first trial, I was able to bake out simple geometry into a brickmap containing surface color, opacity, normal, and point data. At this point, my main problem was rendering with a large displacement bounding box. Normally a setting of 0.2 to 0.5 works well, but since my displacement was extremely large, a value of 300 was necessary to prevent clipping. With such a large value, render times increased dramatically to the point where the last few frames of a sequence never finished rendering. To solve this problem, I baked out my city geometry into multiple brickmaps. So far this has solved the problem, and render times have decreased substantially.

The shaders below will be applied to a sphere that grows outward from the center point of the explosion. At this early stage, I am only trying to obtain general effects without harsh critiquing. I will later tweak the renders to my liking during Shake compositing.

Reference Material

The video to the left was created for my Digital Compositing class. I have slowed down the timing 3X and posted part of it here because the effect is somewhat similar to the result I intend to create using Renderman shaders. Hopefully my results here will be more sophisticated. The image to the right is inspiration for the explosion wave's appearance.

Click here for the original, unaltered video.


© Richard Sun / Rich Sun Productions 2007.