|
i n t r o d u c t i o n Truespace 4 is the latest version of this venerable mid-end package from Caligari. Truespace is 3D modeling and animation software, with a long history that goes back to its start on the Amiga. It's pitched by Caligari at the web, gaming and design markets though they then go on to claim the new renderer is 'film production quality'. I'll take issue with that claim later. For now, let's take a look at what else TS4 offers, and how it delivers. i n t e r f a c e Programs can live and die on their interface, and Truespace's is unique, so I'd like to spend a bit of time on it. Caligari have chosen an interesting option for the new version. The whole program now runs in 3D, including all buttons, gadgets and controls.
It is always a difficult task to evaluate the interface of an unfamiliar piece of software, doubly so in this case with the new 3D interface paradigm. I get the impression that once I have taken the time to get to know TS4 more deeply, I will get used to it's quirks, but I do feel it's a little inefficient moving through the menu's and trying to recognize the tiny pictures used for the icons (as opposed to text labels, say). Many functions, without resorting to a plethora of toolbars cluttering the screen (an option), are at least 2 clicks away, usually a combination of right and left clicks, if you want any numeric options for the function being performed. Right clicking a button brings up any relevant options for that task, left clicking executes it using the last settings. TS4 does have a good set of keyboard shortcuts and you can add your own, which goes a long way to mitigating this. TS4 is still one integrated program - modeling, texturing and scene setup and animation are done in the one interface. Many claim to prefer a separate modeling program, but it is very much something you get used to. Like all good ex-Amiga software, TS4 will let you run multiple instances of itself, so it's possible to have two open, one for modeling and one for scene setup. I like to model and save all my models, then do scene setup in a clean scene. Being able to tweak models while doing scene setup is great. Truespace has always had, and continues to have, a very interactive interface. It is very 'visual'. A good example is the extrude tool. Using a 3D guide aligned to your object, you set the parameters of the tool by manipulating handles in 3D space to 'eyeball' the operation. I like it. As a Lightwave user by trade, it's refreshing to be able to perform a bevel by just grabbing the face and interactively pulling the bevel out to where I want it. Objects are manipulated using a 'widget' - little 3D gadget that 'floats' near your object, and allows you to move, rotate and scale the object using this 'floating axis'. I did find it a bit tricky to rotate an object around just the right axis and align it precisely, or even just click on the right part of the widget, especially for 'scale'. Other widgets pop up with a right-click on a context-sensitive basis. Select a face, right-click, and widgets applicable to face manipulation (bevel, sweep, lathe etc.) appear. Select the function you want, and away you go. Nice. Expect to spend a while learning what the little 3D widgets represent though. They are little 3D icons, and can all look a bit similar. TS4 defaults to a perspective view of your work area. I'd like to see an option to switch to a 'quadview' without having to open and position 3 new windows overlapping my main perspective view. Precise object positioning really does require it. g e t t i n g s t a r t e d Truespace comes with a 550 page manual, and one CD-ROM with demo scenes, tutorial scenes, and the Caligari website on the CD-ROM - a nice touch. They even have road directions from LAX to their building on their web site. Hopefully not an indication of what it takes to get tech support :) The manual isn't bad, it isn't great either. Combined with the tooltips (see below) and the searchable online help file, I never got really stuck. I found the Task Tutorials (walk through demonstrations of the software) pretty much incomprehensible. The software performed operations with little explanation of what it was doing. It's a great idea, but it badly needs the addition of more info boxes explaining what is going on. Of much greater value are the Tooltips. Click Tooltips, then click the button you want information on. TS will walk you through a demonstration of the tool (though not all are covered), with text explanations of what is happening. Very, very useful, a feature I'm sure will be emulated by other software producers - it's a big leap forward from the paltry text descriptions of a button most software provides using tooltips. Some of the English in the tooltips demos is, well, quaint - and at times confusing. m o d e l i n g The first thing you'll want to do for any serious modeling is set up some keyboard shortcuts. Otherwise, you'll spend a lot of time clicking through menus! That done, I found object editing to be very intuitive, and very point-and-click friendly. Objects can be edited in either point, edge or face mode - I find being able to move edges a useful feature some other software lacks. One word of warning - switch back to Object mode before saving your objects. Saving them while in point/edge/face mode results in a corrupt file. Not pretty! I would have to highly recommend saving objects using an incremental numbering system. It's a good habit in any software, and TS4 seems to have several ways to trash your object. No sizing options are available when adding a default object (cube, sphere etc.). You have to create the objects at their default size, then scale them by changing values in the Object Properties requester, or by 'eyeballing' the size freehand. The previous values are forgotten if you add another object. Also missing - you can't set a cube to have 3 x, 1 y and 4 z 'slices', and slicing in more than one direction later is a pain. The object slicer is pretty cool though. Click an edge, click slice and you can then drag the mouse to move a new parallel edge across the adjoining face(s) to create a division in that face. Faces can also be automatically subdivided, and smooth subdivided, which attempts to create a smoothed surface based on the surrounding geometry rather than just dividing the face(s) up. Bevel, sweep, lathe and tip (creates a 'pyramid' on a face) are all present and correct, and all are very visual and interactive in practice. No shortcomings here. Boolean operations can also be performed - add, subtract and union. Respective surface settings are retained after the boolean, so subtracting a blue cylinder from a green cube results in a green cube with a blue tunnel as expected. Edges are clean and the resulting geometry seems very tidy. Individual polygons can be created either by having TS4 create an n-sided polygon, by clicking out points freehand, or using the spline tool, which creates a spline-path with bezier control handles, either for use as a path or 'freezing' to a normal polygon. Once created, polygons can be edited and combined using any of the tools mentioned. The text tool is rudimentary, allowing the creation of a text object using any system font. There are no bevel or depth options, the text is simply created as a flat polygon. A very cool object manipulation tool is Magnet. It 'sticks' one object to the surface of another, and you can then slide the object over the surface of its anchor to position it. It's not entirely accurate, as a boolean subtract of the result reveals, but it's pretty good. Great for assembling hierarchies from parts. Another very handy modeling tool, particularly when accuracy is important, is the dimensioning tool. This places a CAD style dimensioning line and measurement between two points which remains a part of the object and updates as you edit. Multiple dimensions can be placed on one object. Unfortunately they are placed in 3D relative to the points, so the text will be backwards if viewing the object from the wrong angle. The text needs to flip to always face out of the screen, which it tries to do but often gets confused. Truespace includes a polygon reduction tool, important for a VRML oriented package and useful for game developers too. Level-of-detail objects are supported - multiple versions of an object in different resolutions, so simpler versions can be displayed with increasing distance in a VRML world. It appears that this feature should also work when animating within TS, but shortcomings in the documentation left me lost as to how to make this work. The results of the polygon reduction weren't great on even moderately complex objects, either, so a stand-alone tool might be a better option for now if you need good polygon reduction. While on the subject of VRML, objects can have URL's attached to them, for use in VRML worlds. Links can be attached to sub objects in a hierarchy, and can be given a short text description. Sounds can also be attached to objects, and the sound changes appropriately as you move about the 3D space. It would be nice if TS would render a sound file of an animation to disk, to go with the rendered output. And then some doppler effects would also be helpful, and... well, the possibilities are endless! o t h e r m o d e l i n g t o o l s : Sculpt and Deform - one of Truespace's earliest innovations, deformation cages have come a long way. Sculpting is done on a surface, while deform affects the whole object. Control points are placed on the object to pull the shape of the underlying geometry around, and each point has handles which act much like bezier curve controls allowing you to affect the shape of the deformation at that point. Deforming an object can be done in two ways. You can either apply a control grid to the object and manipulate that, or create a cage and then have TS change the shape of the object to match the cage. This becomes especially useful for animation. Create a cage and shape it as required, then link it to an object. As the object moves through the cage, the object deforms to fit the cage. It becomes a simple effect to have a bulge move along a pipe, or a character squeeze through a keyhole. Nurbs - much like metanurbs in Lightwave, rather than true nurbs. That's not necessarily a bad thing, if you're doing organic objects rather than precise CAD type modeling. Nurbs are a really nice way to 'sculpt' organic objects. The original mesh is turned into control points for a smoothed, denser mesh. By pulling points on the control mesh, you change the shape of the nurb mesh. Mesh density and smoothness can be set for individual points, edges and faces, or for the whole object. That's a nice jump over programs like Lightwave that only allow object-wide changes and have no control over the tension of the mesh. Metaballs - objects can be created with not just spheres but also cube and cylinder primitives. A metaball object is created by lumping together the primitives mentioned which then get 'shrink wrapped' to create a smooth mesh. The tightness with which the mesh 'clings' to the underlying objects can be set, including a negative setting which causes the mesh to be repulsed from that primitive rather than surrounding it. It's a lot harder to explain than it is to use! With just a few primitives you can create some very complex geometry. The primitives can then be animated to animate to overlaying mesh, and if a primitive is pulled too far from the others, it will split off completely, making metaballs perfect for animating liquids. Sadly, there are no particle effects included in TS4, which would complement metaballs well. Plastiform - now this is a fun tool. Select some faces or a whole object, then use a sphere or a cylinder to indent or push out the surface. The useful part is that rather than just affecting the existing geometry, plastiform creates new geometry to extend the existing object. It reminds me of the OpenGL screen saver pipes. Just drag the little sphere through a face to make a pipe running out from it. Moving the sphere around on the spot, or scaling it up, creates a ball around the control sphere. The resulting geometry is fairly 'lumpy' so it's more suited to bloody or organic shapes than precise modeling, but what a cool tool! I did find it tended to 'come loose' and break out of the mesh if I dragged too fast. All in all, a competent modeler, with some unique tools for those 'special' jobs. I'd really like to see an automatic quadview option, but that's probably only a short script away. I'd also like some more solid selection tools - selecting by surface (material), selecting all points/faces/edges connected to the current one and so on. t e x t u r i n g Truespace offers several ways to texture your objects, and some great surface options are let down by a small but important shortcoming. First, the good stuff : objects can be textured by colour, ambiance (self lighting), diffuse, specularity, transparency, refraction, reflection, bump mapping (called displacement at times, but is not geometry displacement) and even transmission. A good range of controls there, but the bad news is, only colour, reflect, transparency and bump mapping can have texture maps assigned to them. Realistic texturing requires at least diffuse and specularity mapping. TS only allows one uniform value to be assigned to these and the other parameters on any one face. The texturing interface is also less than intuitive. The seven basic parameters are represented by seven unlabeled sliders, and their function isn't immediately apparent from the icons in each
Truespace4 includes 3D painting, which is a very useful way to quickly texture an object, unless the object is quite detailed, in which case painting becomes too slow to be useful. An airbrush, an eraser and a solid brush are provided and both colour and bump can be painted. A separate texture map for each face is saved to disk into a sub directory automatically, there is no option to export one image to another application like Photoshop for refinement. It's all quite primitive, but handy for quick spots of colour or dents that need accurate placement. I look forward to seeing this tool refined and expanded in future versions. An integrated 3D paint feature would be a strong selling point. A related feature, face painting, allows the application of a texture on a face-by-face basis. Vertices can also be painted, with a spot of colour that fades into the surrounding faces. It would be useful if textures could be painted arbitrarily across the object using the 3D Paint tool. Face painting is very useful for painting decals etc. - regular shaped patches, though the Material Rectangle tool allows more freedom in placing a rectangle of texture on the object, and can also be animated. Textures (materials) can be stored to a material library, and multiple libraries can be loaded and saved. l i g h t i n g Infinite (parallel), Local (point), Spot, Projector (which projects an image file) and Array or area lights are all present and correct. There is also a 'Sky' light, which is used for radiosity renders and simulates the light diffused by the sky into an outdoor scene, and can be set for either overcast (resulting in less directional light) or clear sky. Lights can be colored, have an intensity set, a falloff of either none, linear or exponential and be volumetric on a light-by-light basis. There is a good range of lens flare controls, but unfortunately this is a global setting - either all lights flare, or none do. Shadow casting can be set for individual lights, and all lights can cast either shadow mapped or raytraced shadows. Shadow maps can be set to one of three sizes and three levels of sharpness. Once created, a light cannot be changed to a different type. b o n e s a n d i n v e r s e k i n e m a t i c s Character animators will find TS4 somewhat more friendly than they have in the past. There is a very sophisticated bones setup in TS4. As well as being able to apply bones to a mesh, you can also setup 'tendons' to control the deformation of joints, and 'muscles', to control bulging between joints
Hierarchies of objects can also be converted automatically to an IK 'skeleton' for animation with the IK tools. The same joint controls as bones are used (without muscles and tendons), so IK limits and stiffness can be set, and as with bones are displayed visually in the scene. Unlike bones in a seamless mesh, an object hierarchy can shave several chains of joints, each with their own nail to restrict movement. a n i m a t i o n TS4 will animate almost anything you can do to a scene - object shape, position, rotation, texture settings, camera position and zoom, look ahead and look at constraints, lighting, and more. Objects (or lights or cameras) can be attached to paths, which can be simply drawn using the spline path tool, and the object can be set to 'look ahead' along the path, so it remains facing in the direction of movement, and can also be targeted at any other object. Paths can be stored to a library for later use, very handy for those common paths like 'circle' that get reused all the time. Animating textures has the usual restrictions - trying to change from, say, a plain colour to a marble (procedural) shader will result in the new shader 'popping' on at the keyframe, rather than gradually fading up. A very functional keyframe editor is included
Truespace 4 comes complete with an amazing physics simulation engine that is practically worth the price of the software by itself. It can handle gravity, wind, object collisions, linear and rotational velocity and acceleration, and atmospheric density. Object properties can be assigned, so an object behaves like metal, rubber, glass etc. - an object can be assigned elasticity, mass, air resistance, surface friction and even buoyancy. Place an object in a thick atmosphere (to simulate water) and watch is bobble around. Hours of fun for the whole family! Collision detection can now be used during scene setup, to prevent objects penetrating the floor or each other, in real time. It should be noted that such physics simulation is inherently processor intensive, and the greater the complexity of your objects, the more reliable the simulations will be - and the slower it will run. Note that physics seems to be a little crash prone. It's not too bad, but the readme warns that collision detection can be a bit unstable - at least they were honest enough to list known problems! Cool Tool! r e n d e r i n g With the new Lightworks render engine Caligari have built TS4 around, come some nifty new features. Radiosity is built in, as is volumetric rendering (visible lightbeams). On the flipside, I found the antialiasing a little patchy, and at times just plain slow particularly if using the 2x, 3x or 4x supersampling option. The scanline renderer produced notable artifacts at times, and near-vertical and horizontal edges showed noticeable stepping in the antialiasing when magnified in Photoshop
Radiosity renders can be beautiful
There are several options for rendering. The scene can be rendered on screen, either in whole, or an area selected by dragging a box with the mouse. Obviously, images and scenes can be rendered out to disk. Also, and the currently selected object can be rendered, a particularly useful feature. TS will save out 32 bit (embedded alpha) images, but at present this results in a corrupted image with some savers. Caligari are aware of the problem and will hopefully have a fix by the time you read this. The PNG saver seems fine, in the interim. Depth of field, motion blur, fog (ground and scene) and field rendering are all well supported, though the fog has no noise options. Images can have foreground and background shaders applied - fog is a foreground shader, and is mutually exclusive with other foreground shaders. These are snow (won't animate, but looks nice in stills), the global environment map, depth cueing (similar to fog) and volumetric lighting. So you can't have a scene with volumetric lights and ground fog, for example - a bit of a shame. Including the global environment map is a big shortcoming - it means surfaces must have an environment map applied individually if you want to use another foreground shader, instead of just being able to specify a global map for all reflective surfaces. Background shaders allow clouds, an image (or sequence), a gradient or a flat colour to be placed in the background. One final comment on rendering - I really like the 'blown out' or overexposed image it's possible to obtain with bright lighting in Truespace, particularly when using radiosity. In fact, you have to be careful with your lights to avoid that look at times. I would like to see a global 'ambient' light setting - at the moment this is set on a surface-by-surface basis. s c r i p t i n g Python is a complete public domain high level language, and TS4 adds what seems to be a complete set of commands to control all the elements of a scene. Scripts can be attached to objects in a TS scene or run as a standalone program within Truespace. A competent script editor is built in, it isn't much more functional than Notepad, but it's adequate for quick scripts. These are simply ASCII text, so you can use whichever editor you are comfortable with. It is not possible to record scripts in a 'macro' fashion by performing a sequence of commands with the interface and having TS generate the code for that operation. I'm no programmer, but Python, and the Truespace additions, seem powerful and extensive. w e b p u b l i s h i n g a n d i m p o r t / e x p o r t Truespace has always targeted web developers as a key market, and TS4 is no exception. VRML worlds can be built, browsed and saved in TS4. You can build VRML 2.0 worlds and save them, but it is not possible to load them back in, so make sure you save as Truespace, as well as VRML 2 or you won't be able to edit your scene in future. Truespace will also act as a browse, allowing you to view VRML 1.0 worlds on the 'net inside the Truespace interface. As mentioned, hyper links and sounds can be attached to objects for VRML publishing. It is now possible to 'publish' VRML world directly from within Truespace to an FTP server, which is a nice touch, saving the hassle of flipping to an FTP program and doing the transfer. The only real restriction is that TS can't create sub-directories on the FTP server, to hold textures for example. Truespace will load and save a good range of object and image formats. Objects can be loaded and saved in several common formats, though TS4 won't load scenes from any other software, other than VRML 1.0. Postscript files can be imported, but stick to paths, and convert text to paths for reliable importing. This is a really handy feature, as Illustrator and even Photoshop obviously have more sophisticated path drawing tools. Paths are imported as polygons, rather than spline curves. c o n c l u s i o n As is to be expected in a first release of a major new version (particularly as the renderer has been completely replaced!), there are some bugs in the software. Using Truespace for around 6 hours a day as I've assessed it, I would experience a crash roughly every half hour, depending on the area of the software I'm working in. A patch is planned, and may well be available by the time you read this. If you are planning to upgrade from V3, I would do so - you can use the time until the patch to learn new features at least. For the money, Truespace4 is a powerful piece of software in it's own right, and when you consider the price, it's great value. Several features by themselves are worth getting Truespace for - radiosity and physics/dynamics spring to mind. I'd be wary about recommending it for demanding animation work, until some of the kinks in the renderer are worked out both in quality and speed, but for web and print design, it's intuitive and easy to use. There is an enthusiastic, helpful and friendly user base, which is always a great asset, to be found in the busy Truespace Mailing List. For the hobbyist, those new to 3D and on a budget, or web and print publishers, I'd have no hesitation in recommending Truespace.
Bill Boyce is a freelance animator living in New Zealand. Bill enjoys windsurfing, touch rugby and movies, is 5'9", and looks lousy in a swimsuit. You can contact Bill by email at bilboyce@ihug.co.nz and he has a homepage at homepages.ihug.co.nz/~bilboyce. |