Your online Softimage Educational Resource

The blog has been online for more than 4 years and there’s still not a single post even remotely related to the delicious brew called coffee… Perhaps it will someday, but in the meantime you can read the articles about Softimage. Most of the material are tutorials and Q&As I’ve written for 3D World Magazine sometime between today and 2003. If you have any questions please don’t hesitate sending me an email.


Thanks to Letterbox Animation Studios for hosting all the scene files.

Make sure you visit their Redi-Vivus.com for 100s of hours of free XSI video tutorials.

Thursday, May 14, 2009

Rendering XXL Sized images

While images for prominent 3d magazines may require a resolution of 300dpi, posters and billboards requires far less.
While the images for a typical brochure often are printed at a resolution of between 150 and 300 dots per inch (dpi) posters rarely exceeds 100dpi. Once you reach the size of billboards you’ll probably end up at a resolution less than 30dpi. With the above in mind you should have limit the need for extreme high resolution rendering, but there are situations when you do want the extra pixels. The central problem with large images is the amount of RAM needed. Not only do you need to cover the frame buffer/image itself which can easily grow to several hundred mega bytes (this is without considering the recourses need to actual compute the rendering) you also need to have this amount of free continuous memory.

The idea is to split the rendered image into smaller images and then stitch them back together in Photoshop or XSI Illusion (FX Tree) for that matter. This is done by changing the focal length of the camera and then shifting its optical center to the left, right, up and down. This won’t change the perspective in the image, just just which part and how much you see of it. To maintain the overall control of your shots, you’ll use one camera for the staging and four additional cameras for the render. Any changes made to the main camera will then automatically get propagated to the extra cameras by the use of expression, but with the added offset.

Open the scene SuperSize.scn from this issues CD. Press [8] to open an Explorer, expand the Cam_UpperLeft_Root node and click on the icon next to the Cam_UpperLeft to open its PPG. Switch to the Projection Plane tab and check the Enable checkbox. Right click on the animation icon (green dot) next to the Focal Length and choose Expression Editor. Enter Main_Camera.camera.projplanedist * 2 and click the Apply button. This will link the Focal Length to the main camera and double it (since you are to split the size of the rendered images in half). Open the Expression Editor for the Optical Center Shift X axis and enter Main_Camera.camera.projplanewidth * -0.5 This will offset the optical center by half the main cameras film aperture. Enter the expression Main_Camera.camera.projplaneheight * 0.5 for the Y Axis. Repeat the same procedure for the other three cameras. For the Cam_UpperRight use Main_Camera.camera.projplanewidth * 0.5 for the X shift, Cam_LowerLeft should use * -0.5 for both the X and Y shift (projplanewith and projplaneheight) and the Cam_LowerRight should use *-0.5 for the Y shift.

By using expressions the properties, and their added offset, is automatically propagated from the main camera to the extra cameras.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/XXL_Rendering.zip


In case the redi-vivus.com link doesn’t work, you can find a copy of the project files here: https://www.dropbox.com/s/qj37guhrl5k7qr3/XXL_Rendering.zip


Quick tipThe very same approach can successfully be used to create screen captures that is larger than your display resolution as well.





Read the full post>>

Coloring hair using procedural textures

Step 01
Creating the procedural
Select the pelt object and press [7] to open a Render Tree. Get a Fractal node (from the Nodes > Texture) and a Color Matte node (from the Nodes > Color Channels). Connect the Fractal node to the Input of the Color Matte node and the Color Matte node to the Ambient and Diffuse input of the Blinn node. Open the Fractal PPG. In the Texture tab, click the New button and choose Planar XZ. Switch to the Advanced tab and set the UV Remap Maximum to 5 for all three axis.


Step 02
Creating the texture


Open the Color Matte PPG. In the Component tab, change the Channel to Average RGB. Switch to the Component Range tab and check the Range Enabled checkbox. Set the Minimum delta to 0 (zero), the Minimum threshold to about 0.45 and the Maximum delta to 1. Change the Inside Value to a light brownish color and the Outside Value to a dark brown. Select the Color_Matte node and press [Ctrl] + [C] to copy the branch. Press [Ctrl] + [2] to switch to the Hair toolbar. Select all the polygons on the topside of the pelt and from the Hair > Create menu choose From Selection



Step 03
Transfer UV’s to the Hair
Select the Hair and from the Modify menu choose Transfer Map. Press [8] to open an Explorer. Expand the Pelt > Polygon Mesh > Cluster > Texture_Coordinates node and pick the Texture_Projection (Planar XZ). This will copy the UV information from the mesh to the hair operator. With the hair selected, press [7] to open a Render Tree and press [Ctrl] + [V] to paste the nodes from the Pelt material. Connect the Color_Matte to the DiffuseRoot input of the Hair_Render node.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/HairProceduralColor.zip


Read the full post>>

Animating a mechanic billboard in Softimage XSI

While the mechanical billboard is outdated at best, your virtual version is just about to start its glory days.

Start by opening the Billboard.scn scene from this issues CD. The scene contains a bunch of trilons or triangular prisms, 300 to be precise. Using a couple of thousands would obviously be more striking but for the sake of demonstration the number is keep low. While any of the prisms could be used to animate their rotation, it’s a good idea to separate the animation parameters from the actual billboard. Start by selecting the null object named Prisms_Rotation. Press [C] to activate the rotation tool and press [K] to set a keyframe at frame 1. Go to frame 16, rotate the Prisms_Rotation 120 degrees on the Y-axis and set a new keyframe. With the rotation still at 120, set another keyframe at frame 80. Press [0] (zero) to open the Animation Editor and select the function curve for the Y rotation (roty). From the Curves menu choose relative Cycle. To change the pace of your mechanic billboard, just move one of the 3 keyframes.

Press [2] to switch to the Animate toolbar. From the Create > Parameter menu choose New Custom Parameter Set. Enter Billboard as the name and click OK. Press [8] to open an Explorer, select the Billboard parameter set and press [Shift] + [P] to add a new custom parameter. Name the new Parameter Rotation_Delay. The parameter will be used to control the offset of the prisms. Changing the slider will automatically change the delay. The offset is evaluated in seconds; consequently you’re going to use very small values. Change the Maximum Value Range to 0.01 and click OK to close the PPG.

Open an Explorer and select the Prism_No1. Scroll down to Prism_No300 and shift select it to select all the objects in order from 1 to 300. Press [Alt] + [4] to open the Script Editor. Set your script language to Jscript (File > Preferences) and enter the text beneath.
Press the Run button in Script Editor to execute the script. Open the Bilboard PPG and playback the animation while changing the Time_Delay slider.

Using a simple loop in Jscript adds the expression with the delayed rotation in seconds rather than the frustrating hour required if done manually.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/Billboard.zip

Quick tip
The order in which the objects are selected also controls the extent of the offset, which in turn is set by Rotation_Delay slider. So, select the object in the order you want them to turn.




Read the full post>>

Create procedural leather material in XSI

Step 01
Color variation
Start by installing the BA Shader Collection Essential add-on from http://www.binaryalchemy.de/index_dev.htm. Open the scene leather.scn from this issues CD. Press [8] to open an Explorer and select the group Leather_material. From the Get > Material menu choose Blinn and press [7] to open a Render Tree. From the Nodes > Textures menu choose More… In the Browser, click the Paths button and choose the Binary Alchemy Shader Collection – Essential. Select the BA_fractal4d and press OK.


Step 02
Creating bumpmap
Double-click on the BA_fractal4d node to open its PPG. Change the settings according to the above screenshot and then connect the node to the diffuse input of the Blinn node. Get a second BA_Fractal4d node and a BA_cell3d texture by repeating the previous step. Open the PPG for the BA_fractal node, switch to the Noise tab and set the Noise Type to Fractalsum. In the Bump tab, check the Enable Bump and Bumpmap only checkboxes and set the Bump Factor to 1. Switch to the Texture Support and set the Coordinate Scale to 8 on all three axis.
Step 03
Creating bumpmap variation
Open the BA_cell3d PPG and switch to the Cell tab and change the Cell Shape to Random (less black holes) and increase the Power Level to 3. In the Bump tab check the Enable Bump and Bumpmap only checkboxes and set the Bump Factor to -250. Switch to the Texture Support tab and change the coordinate Pre-Scale to Small Noise and the Scale on all three axis to 4. From the Nodes > Mixers menu get a Mix 2 Colors node. Connect the BA_cell node to the base_color input of the Mix_2colors node and the BA_fractal to the color1 input. Then connect the Mix_2colors node to the Bump Map input of the Material node.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/ProceduralLeather.zip



Read the full post>>

Tuesday, May 5, 2009

Simulating an effervescent tablet using particles

Step 01
Creating particles
The first think you’ll need is obviously a glass of water and a tablet, so start by opening the scene effervescent_tablet.scn from this issues CD. Press [4] to switch to the Simulate toolbar. Select the tablet and from the Create > Particles menu choose From Selection. In the particle PPG, change the settings as shown in the above screenshot (a high-resolution version can be found on the CD).

Step 02
Adding bubbles
In the Particle_Billboard section, switch to the Make Connection tab and click the Sprite button. Switch to the Sprite tab (in the PType section) and click the New button > New From File... and pick the SpriteBubble.pic image from the CD. From the Get > Force menu, choose Gravity. Change the Amplitude to about 10. Rotate the gravity -180 degrees along the X-axis so it points upwards.

Step 03
Creating the environment
Select the cloud and from the Modify > Environment menu, choose Apply Force and pick the gravity object. With the cloud still selected, click Modify > Environment Modify > Environment > set Obstacle and pick the glass. In the obstacle PPG, change the Obstacle type to Actual Shape. Set a new obstacle but this time, pick the WaterSurface. From the Inspect > Events menu choose PEvent1 and, in the PPG, change the Action to Disappear.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/Effervescent_Tablet.zip


Read the full post>>

Sunday, February 8, 2009

Cast Shadow Only Lights in XSI


















Step 01
Using two lights
While it may sound simple enough, it does require a little trick. By adding a light to the scene you’ll get the wanted shadow but you’ll also get the extra illumination. So you’ll need to create a second light that will remove the added illumination but leaves the shadow intact. Open the scene NegativeLight.scn from this issues CD.




















Step 02
Creating the shadows
The scene consists of a couple of dummy objects and the default lighting. From the Primitive > Light menu choose Sport to create a spotlight. In the spotlight’s PPG scroll down to the Shadow section, check the Enable checkbox and set the Umbra to 0 (zero). Now, position the spotlight so it cast shadows in the desired direction.





















Step 03
Removing the extra illumination
With the spotlight still selected, press [Ctrl] + [D] to duplicate it and open the PPG for the new light. The natural choice would be to change the intensity of the light. However, XSI doesn’t allow negative values for the Intensity. Fortunately it does for the RGB colors. Set the R, G and B to -1 and uncheck the shadow checkbox. Remember to move both light if you want to alter the direction of the shadow.


Read the full post>>

Tuesday, January 13, 2009

Custom Depth Pass in XSI
















By using null objects and a couple of nodes in the render tree, you’ll get an interactive visual representation of the near and far values of your depth pass.
There are a couple of different ways to create depth passes in XSI, including the pre defined that can be found in the Render > Pass > Edit > New Pass menu. Since it’s only a mouse click away, it’s obviously the quickest to create. However, finding the proper values may not be the most intuitive with this setup.

Open the scene depth_pass.scn from this issues CD, or create a scene with a couple of object on your own. Create two Null objects and name them Near and Far. Position the Near null at the pear closest to the camera and the Far null at the pear in the back. These will be used to control the gradient. The surface closest to the camera will be white and the one furthest away will be black. Press [3] to switch to the Render toolbar and from the Pass > Edit > New Pass menu choose Empty. Name the pass Depth_Pass. Press [8] to open an Explorer and press [P] to change the scope to pass. Expand the Depth_Pass node and select the Background_Objects_Partition. From the Get > Material menu choose Constant and press [7] to open a Render Tree. From the Nodes > State menu get a Scalar state node (make sure it’s set to Ray Length in the PPG) and from the Nodes > Math get a Change Range node. Connect the Scalar state node to the input of the Change Range node and the Change Range node to the Surface input of the Material node. Double-click on the Change Range node to open the PPG. By converting the position of the null objects to zero (black) and one (white), you’ll create the grayscale image. Right click on the animation icon next to the Old Range: Start and choose Expression Editor... from the menu. Enter ctr_dist_cam( Far. ) in the editing pane, click the Apply button and close the editor. Right click on the animation icon next to the Old Range: End and choose Expression Editor... from the menu. Enter ctr_dist_cam( Near. ) in the editing pane, click the Apply button and close the editor. Set the New Range: Start to 0 (zero) and New Range: End to 1. Draw a Render Region and play with the nulls’ position to see the effect.

The project files used in this tutorial can be found at:
http://www.Redi-Vivus.com/Caffeineabuse/Custom_Depth_Pass_in_XSI.zip
















A depth pass is basically a grayscale image of your 3d scene, where the different shades of gray represents different depths.

Quick tip
By saving the material as a preset, you can easily create depth passes in future projects within a few mouse clicks.


Read the full post>>