|  
                               trueSpace
                              6 
 Publisher: Caligari  
                                Purchasing:      Direct
                              from Caligari, $595 (Educational
                              Pricing Information) 
                              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 | 
                                     | 
                                   
                                 
                                
                               
                             |