Please support our sponsor:
DirectX4VB.Com - All You Need For Multimedia Visual Basic Programming

Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9
      Miscellaneous

 

trueSpace 6
Publisher: Caligari 
Purchasing:  Direct from Caligari, $595 (Educational Pricing Information). 
                   Guildsoft online purchasing page (UK distributor). Phone: 01752 895100. £485 + VAT
Reviewed:  21st August 2002

Introduction
trueSpace 6 is the latest version of Caligari's long running mid-range 3D rendering package. trueSpace has always been an interesting piece of software simply because it has a good attempt at competing with the "big boys" of the 3D graphics field, yet managing to retail very much in the budget range (although, it's still quite expensive).

This time of year (July/August/September) is often interesting for 3D graphics software - the annual SIGGRAPH exhibition has just finished (end of july), which is the premier place for companies to show off their next product. For this reason, you'll often find the market shaking up a bit as the new software comes on the market, and older software is reduced in price/removed from the product-line.

This years SIGGRAPH exhibition saw some of the more expensive software slashing it's price considerably - forcing several other vendors to follow suit, which could make things much more interesting.

Caligari, unlike many other software vendors tends to keep its older products available for quite a long time - trueSpace 6 is now shipping, but you can also buy copies of v4 and v5 from their website. A review of trueSpace 5.2 on this site can be found here.

The User Interface
The user interface for trueSpace 6 hasn't changed that much from previous versions - apart from obvious additions of buttons for new features.

For those of you who aren't familiar with trueSpace 6's interface you might be surprised to know that there are only 2 menu's - 2 small menu's. Everything else is handled by a series of around 300 toolbar buttons. Because of this, the default configuration is very flexible and simple.

  
click to enlarge

In the above two screenshots you can see two extremes of the trueSpace 6 interface. If you examine the left-hand image closely you can see (around the edges) several small grey rectangles/squares - clicking on these will open up a toolbar in one of two forms. You can have the basic toolbar visible or you can have the basic toolbar expanded to show all sub options (this is shown in the right-hand image).

It takes quite a lot of getting used to - tooltips appear in the caption/status bar explaining most buttons, but it does lack some advantages given by a menu system - names. Especially when you're learning, or if you've just forgotten exactly what you're looking for a named menu item can help a lot. I suppose, if you get used to trueSpace then you'll start to recognize different icons and menu's instead.

Many of the buttons in the interface have options windows attached - right clicking will open these up. 

One part, not entirely due to the user interface, is sorely lacking - undo. It has become the standard in most professional applications these days to have multiple undo's available. Or at least making every function undoable. This isn't the case in trueSpace - most features are undoable, but many aren't. It can get a little infuriating after a while - such that you can become a little paranoid about saving before experimenting with any new - should it not work out, and leave you stuck with some mess.

Geometry Manipulation
Geometry creation and manipulation is pretty much the same as with previous versions - the 'Magic Ring' aids in constructing the initial primitive (you can use a standard type-in creation tool) and you can then go to the sub-object level to edit the mesh.

Where trueSpace 6 really shines over trueSpace 5 is it's new polygon-level editing tools. As with several other areas of this package, the developers have decided to wade in on the real-time artist/modeling territory. This is traditionally done using box-modeling and/or low-polygon mesh editing. Most of the new tools included in trueSpace 6 would seem to be aimed more at low-poly editing, but are also compatible with the less polygonal modeling - NURBS surfacing in particular.

The first interesting feature is mirror editing; particularly when creating non-organic (cars, weapons, buildings etc..) models it is common to find a line of symmetry through the geometry. e.g. One side of a car will almost always mirror the other side. Normally you'd have to be very careful and model both sides exactly the same, using the new mirror tool you can create one side perfectly, then mirror it to the other side to create two identical (and fitting) parts. The clever part is in the editing once mirroring has been setup - only one side remains 'active' and any changes to that are automatically mirrored on the other side.

   

On the left is the original wire frame mesh (my rather odd attempt at a futuristic space-craft). On the right is the same mesh after using the mirror tool. Notice how the [original] right-hand side is an editable wire frame mesh, and the left-hand side is a shaded solid reflection.

Chamfer and Fillet tools are two more similar new additions. These aren't as revolutionary as the mirror editing tool, but allow an artist to refine parts of a model and generally cut a few corners off the older methods. Both Chamfer and Fillet operate on edges - Chamfer will create a straight beveled type effect and Fillet will create a rounded (sub divided) bevel effect. As shown in the following images:


Fillet Tool applied to opposite sides of a cube


Chamfer tool being applied to one edge of a cube


The different effects created by the two tools. Both
processes were the same, only the tool differs.

The last new polygon-level tool of particular interest is the 'Shell' tool. This basically does what it says - it creates a shell from the selected geometry, in layman's terms it will create an inside "wall" for the selected geometry. Take the following image as an example. It started life as a simple cube, I added 4 edges to one face, and deleted the enclosed area - basically punching a hole in the side of the cube. Due to the way geometry is rendered (particularly in real-time applications) back face culling will stop the cubes remaining faces from being visible through the hole. Creating a shell for this mesh puts additional faces in to mimic a solid object:


the shell tool in action

Animation
The big new feature for this release seems to be the facial animator - supposedly to streamline and improve the creating of head/face meshes to use in games/movies. Unfortunately, it really doesn't seem to work amazingly well...

In it's favor, it does have all the right gadgets and tools that you'd expect of such a feature, but having spent 30mins attempting to create a simple textured animation using the stock-heads and gestures it just doesn't work as well as promised. The other tricky thing to get right is the rest of the body - as the name states, it's for heads/faces only. I'm sure a seasoned professional will do far better than I can, but it was extremely hard to get a body (particularly when designing for low-poly outputs) to match the head (and vice versa).


The Facial Animator control panel.

Maybe with a lot of practice it will come into it's own, but the seasoned professional will probably have other methods of achieving the same end result.

Animation in general is handled by a series of 'key-frames' - a system adopted by pretty much all 3D animation packages currently (as well as most real-time playback). You set a series of key frames and then the computer (when rendering/playing) will work out what goes between. This system doesn't seem to have changed much from previous versions of trueSpace - and in general it feels a little lacking when compared with many of it's rivals. It is often unclear as to exactly what trueSpace is recording - for example, it doesn't seem to like recording simple mesh deformations (moving edges/vertices).


click to enlarge

Animation is principally controlled using the scene editor (see images above). This allows for quite a lot of control, it's often easier to move things around manually in the display window but there are times when you need some additional precision and refinement that only a window like this can offer. 

For real-time purposes, skeletal animation is one of the most important aspects any 3D modeling package can offer. Being able to set up a skeleton and interactively deform a mesh using various kinematics options (inverse kinematics being the most useful) is one of the most powerful ways to create believable animation.

Skeletal animation is reasonably powerful when using trueSpace 6 - it has most of the tools you would expect from a package with a much higher price-tag. It also comes complete with a muscle system - which is useful when you want to deal with matrix palette skinning in Direct3D applications (for example).

Textures/Materials
When I wrote the review of trueSpace 5 a couple of months back, one of the major criticisms I had of the software was it's lack of decent texture mapping controls. For all aspects of 3D modeling/rendering, texture maps are extremely important - therefore you ideally want as much control over them as possible. I also said (based on information available at the time), that trueSpace 6 would be improving in this area.

Thankfully, this statement was not wrong - they have greatly improved the texture mapping tools available, most importantly, we now have a UV unwrapper (a standard feature in many over 3D modeling packages).

The UV Unwrapper kicks in once you've selected and applied a texture to a mesh. Based on the initial mapping type (cylindrical, cube, slice etc...) you can then manipulate the wireframe mesh in UV space - lining up individual faces with areas in the selected texture. 

As far as real-time multimedia work goes, this will involve generating a low-polygon mesh, and then creating a texture page (one large texture holding many smaller ones) and manipulating the object's UV projection such that the textures match up. For example, selecting the door object on a car mesh, and lining it up on the part of the texture that represents a car-door.


click to enlarge

In the above screenshot you can see all the major parts tools involved in texture mapping two simple primitives. Both have their textures in one texture page (useful if you're using a D3D/OpenGL rendering API). First you use the standard material library to open a texture file and apply it to the mesh (you could add bump maps/reflectance maps if you want). Next you select each mesh in turn, and configure the texture map. For the "odd" shaped mesh visible I used a cylindrical map, and the cube used a cube mapping option. This will set up a series of default texture coordinates - they'll rarely be exactly what you want. You can then open the Unwrap UV tool window and view a wireframe representation of the geometry (in UV space). You have two options at this point - firstly, you can move the vertices around the texture map and line it up correctly based on the texture loaded. Secondly, you can export the UV-space map to a file, open an external editor and draw/copy the texture in (such that it's lined up correctly from square one) and then re-fresh the map in trueSpace.

From my tests, the latter method was the most reliable way of texturing a low-polygon model. Initially I was using the first method - and got some truly odd results. It all takes a bit of getting used to, and for particularly complicated models it can get very complicated, very quickly - but such is the nature of professional texture mapping!

The next new, and very cool, tool in the trueSpace 6 armory is "texture baking". If you've done much advanced work with real-time 3D graphics you'll know that lighting can get very complicated - light maps, radiosity solutions, pixel/vertex shaders etc... Many current (and old) game engines use the level-editor to compute a series of light maps for each triangle in the game world - using algorithms that are often impossible (currently) to do in real-time. These textures are often used to modulate the color/diffuse texture in real-time to give the appearance of much higher quality lighting than is actually possible.

Texture baking uses a similar strategy to this - it will store the outputted lighting values in a texture, one for each face in the mesh. It's not possible out-of-the-box to translate these directly to your game/real-time environment, but with a little work (and maybe some help from the trueSpace 6 SDK) you could use these textures as the light maps in your game environments. When (and if) someone develops a plugin to allow this transition you could quite feasibly use trueSpace 6 as your lighting tool. Doing this would remove any development/programming time required to write a custom lighting tool - trueSpace 6 can/has already done this for you.

You can now also use projection texture mapping as a source of light - basically providing your own dynamic light shape in a texture file. It's of significant interest to anyone who wishes to render "offline" images/movies - unless you use the texture baking functions it's not going to be much use for an external real-time 3D rendering engine.

Community Support
trueSpace has always had a smaller share of the community than some of the other bigger (and more expensive) 3D modelers. Given that trueSpace 6 is fairly new the community infra-structure is only just starting to get moving - it will be a good few months before the majority of samples, tutorials and plugins find their way onto the internet.

The manual provided with the boxed version of trueSpace 6 is of high quality. It covers every parameter for every control provided in the software, and backs this up with several tutorials. The Quick-Start print-out is invaluable when you first start using the software.

Conclusion
This new version of trueSpace 6 has added several new features that users will really find beneficial, and several that until now have been severely lacking. However, there is still a way to go before it is as rock-solid as some of it's more expensive rivals. Three areas, in my opinion, really need attention:

Undo - if you can really call it that. I'm not entirely sure why the undo button doesn't work properly - but at least 70% of the time it doesn't undo anything, and in a few cases it undoes something only to leave it in a completely different and messed up state. Forget trying to undo any complex geometry manipulations, the undo in this version is only really going to be useful if you accidentally move an object out of position and need it moved back again.

Texture mapping - it is a relief to have a better texture unwrapper built into the main program, but it still has a long way to go and a lot of improving. There are still too many occasions where the unwrap functions give a complete mess in the UV unwrap window. There are also a few residing bugs making it not quite as bullet-proof as you might like.

Animation - this is only a minor quibble, in general the animation is still perfectly functional and does get the job done... but there are a few little things that should be implemented. Even simple things like per-edge or per-vertex deformations being stored in key-frames : something I take for granted when using other 3D modelers.

If you're on a limited budget, or just plain can't justify spending £2500/$3500 on one of the more industry-standard packages then trueSpace 6 is definitely a good move. It has its weaknesses, and doesn't come across as being as stable as some of the more expensive packages, but for it's price you can't really ask for any more.

Purchasing direct from Caligari: $595 (trial version available)
Purchasing from GuildSoft (UK redistributor):
£485 + vat 

Good Points Bad Points
• Interface has remained the same. • Texture mapping still needs some work.
• Inclusion of vastly more powerful texture tools compared with v5. • 'UNDO' really doesn't cut it; it's better to rely on save/load instead.
• 'Texture Baking' has some serious potential for real-time artists. • Animation is starting to look a little old in comparison to some of the newer efforts
• New geometry tools such as Mirror allow for faster working on low-poly meshes. • Facial animator is a nice idea, but in practice it's not as useful as it sounds.
• Good price for the features on offer. • Interface may take some getting used to for some new users.
• Trial Version Available for download
DirectX 4 VB © 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster
This site is hosted by Exhedra Solutions, Inc., the parent company of RentACoder.com and PlanetSourceCode.com