Realsoft 3D Version 4.5

CONTENTS



Introduction

The new software release introduces hundreds of improvements requested by the users. Improvements cover almost all program areas.

This readme file describes most new features and other changes of Realsoft 3D v.4.5


Documentation

Reference Manual
Version 4.5 includes a reference manual in the html format. The structure of the reference manual corresponds to the structure of Realsoft 3D application and is an essential source of information. The contents of the reference manual can be explored using a tree control, making navigation easy.

Reference manual
Reference Manual


Context Sensitive Help System
Version 4.5 also supports context sensitive help system. To use the help, move the mouse over the desired tool or window and hit the F1 key. This will open the reference manual and find the appropriate topic for you.

To get help for a tool option, activate the tool so that the desired option is shown in the context sensitive tool bar. Then move the mouse over the desired option and hit F1.


User Manual
Also the user manual has been updated, including several new tutorials.

Utilities

ShowImage
ShowImage has now a new popup menu showing the channels defined by the image. This allows the user to view any channel easily.
BatchRenderer
A command line based batch rendering program is included.

The program can be started with a set of projects as follows:

batchren project1.r3d project2.r3d ....

The -file option can be used for defining a configuration project, which is loaded in before any of the specified project files. The configuration project can specify materials, camera orientation etc.

batchren -file config.r3d front.r3d side.r3d top.r3d

Compared to the full Realsoft 3D application, the batch renderer can render your projects more efficiently. The application is smaller and the a project being render requires less space because there is no need to load modeler specific data from the file.

GUI Based Batch Renderer
This is another front end to Realsoft 3D's rendering engine. It allows you to render multiple projects using a graphical user interface.

Batch Renderer

Two projects added for rendering

Each project can be rendered as an animation, or as a still image (the current frame).


Rendering

Version 4.5 introduces numerous improvements to rendering.
Distributed Network Rendering

More compatible with Fire Walls

Rendering server (r3rendd) now uses the accepted port directly for rendering without opening a new socket. You only need to open the rendering port, default 10050, to make your renderer available through a fire wall. This makes it more compatible with firewalls and allows you to render over internet easily

Support for a Hierarchical Rendering Tree in Distributed Rendering

In the version 4.5, the distributed network render engine supports hierarchical rendering configurations. This makes it possible to access all the rendering power in a local area network through one rendering server, which distributes rendering requests locally to other workstations on the LAN. This solves one of the biggest problems in network rendering: while the number of rendering servers goes up, the overhead caused by network traffic becomes bigger and finally adding new workstations to the rendering farm will only slow down the rendering.

Distribute


Texture Proxy

Another important improvement to distributed network rendering is a texture caching feature. The cache usually improves network performance significantly: the texture files are moved in their native form which often includes good compression. Successive rendering actions can use the local hard disk instead of adding the network traffic.

The biggest advantage of the new texture proxy system is that makes rendering over internet possible. You no longer need to map network drives. Textures are automatically transmitted to servers when needed.


Rendering Thresholds
Render settings threshold values (recursion, antialiasing, undersampling) redefined. The units are now per mill points. The scale is therefore 0 - 10 % which is a more useful and accurate value range. Especially recursion thresholds work now better. The minimal signal level 0.001 is no longer visible to human eye.


Channels
Version 4.5 introduces new options which give the user even more control over Channels. In v 4.5, any channel can trigger antialiasing. For example, alpha channel should be included whenever the alpha channel is outputted.

Antialias operation selector is another new option. Previously all channels were averaged. Now also min and max operations are available. Setting the 'Distance' channel operation to 'Min' improves image quality when fog or depth of field post effects are used.


Controlling Memory Usage
A new control for memory usage added. Low memory modes consume less RAM memory in rendering, especially when the scene includes multiple point or spot lights. However, rendering with low memory takes longer time. Therefore, low memory modes should be used only if they help to avoid virtual memory use in rendering of complex scenes (heavy memory swapping may slow down rendering even more).


Displacement Mapping
NURBS and Subdivision Surface objects support rendering time displacement mapping. Using this new feature is easy: just set 'Displacement' attribute to a desired value and all bump map textures generate true bumps for the object. Therefore, any bump map material can be easily used in displacement mapping.


Typical displacement map VSL material

Any VSL shader, such as Curve, Texture, Noise, etc. can then be used for generating displacement maps simply by attaching them to Bump height channel.



Fur generated using Displacement Map. Each bear has more than 1 000 000 hairs.

Also NURBS curve supports render time displacement mapping. Curves are rendered using scanline renderer so VSL allows their geometry be modified in Scanline phase.

For example, the following material bends a curve randomly:


Displace scan line curves
A VSL material displacing NURBS curves using a Noise VSL object.

Noise distorted curves


A new scanline rendering control 'Diameter channel' added to NURBS curve. The user can control the diameter of scanline rendered NURBS curves using a suitable channel and a material. For example, one can control curve thickness using a noise VSL object:


Seaweed modeled using variable thickness curves


Caustics
Version 4.5 introduces Caustics rendering.

Caustics can be controlled through set of options, such as:


Rendering settings for caustics

Rendering settings controlling Caustics computations



Caustics enabled


Scene Cache
The render engine introduces a new 'Scene cache' feature. If enabled, ray trace data is not freed from memory after rendering. If the user restarts rendering and only the camera, materials or the render box have changed, rendering will start much quicker. If the scene includes complex SDS models, time saving can be tens of seconds per render cycle.

The option can be turned on and off from the 'Render' tab of the view property window.

Other Improvements
Version 4.5 introduces numerous other improvements to rendering, increasing productivity and simplifying work flow.

For example, Ray trace update no longer executes wire frame update as the first action. One can first render an image using draft quality and then render desired areas with a better quality using the box render feature. This provides a time-saving workflow especially when 'Scene cache' feature is turned on.

The actual ray traced image can be redrawn to view using 'Show Backup' menu. Such a reference image is a useful starting point for box rendering after some editing actions.

Ray trace backup buffer is now compatible with box rendering

Ray tracebackup buffer option removed from render settings/post processing tab. It is now available on View's popup menu item 'Render+Backup'. This menu renders the image and makes a backup disk file from unpostprocessed ray tracing image. The backup file can be post processed later multiple times using 'Postprocess' menu.

File rendering now checks file name & path validity immediately in the beginning of rendering, not at first render box or field assembly from temporary files.

File rendering supports now an individual file name for each output object instead of using a common name. This is especially important when using several instances of a same format type. For example:

Phong shading option implemented for polygonal SDS rendering

Phong shaded triset surfaces, NURBS and SDS surfaces render now slightly different from previous versions. The light source shading correction at low angles is now much subtler.


Post Effects

Post Image Scaling
Rendering pipeline supports now resolution changes (image scaling). The 'Post image' object now contains image resolution scaling controls (in X and Y separately) both for inputted data and for outputted image. For example, it is possible to ray trace at double resolution, add some post effects and finally scale the image down to the actual target resolution so that antialiasing improves. Or, one can ray trace at normal resolution, rescale the result up using a sub post image, add post effects in high resolution and finally scale back to original resolution.
Line Effect
A new 'Line' post effect implemented. The following options are available: The main purpose of the effect is to filter outline rendering.


An image created with the new 'line' effect.

For example:

The result of this process is antialiased outline rendering

Light Glow Effect
A new effect 'LightGlow' added. It analyzes the image and generates an additive glow from bright image areas. Unlike the usual glow, lightglow is a lens effect, meaning that it appears in front of all objects regardless of their distance from the camera.

Lightglow has the following controls:

Glow Effect Improved
Glow post effect works now much faster. It includes two new controls.


Blur effect Improved
Blur effect's blurring range expanded. The effect also includes a new control 'Geometric Weight'. If set to one, blurring happens only across connected, continuous surface areas. Dislocated objects will not blur together. This is a useful option when antialiasing object specific channel information (such as ambient lighting) by averaging in post processing phase.

Another new blur control is the 'iterations' slider. The iteration value repeats the effect multiple times, producing a wider blur with a small time penalty.


Multiple Post Processing Configurations Supported
Both the View window and File Render window now provide selection for multiple post processing configurations. The user can define render box, full image, field and frame post processing actions separately. This usually eliminates need for multi-pass rendering.

All defined post processing actions are executed regardless of animation or other render settings - Render box specific post effects are computed even if box rendering is turned off.

The evaluation order of post effects is: box effect first, then image effects, field effects and frame effects last.

Examples:

1. 'Image flare' works incorrectly when applied to render boxes separately. Therefore, apply it as an 'Effect/Image'.

2. Alpha channel pre multiplication should be evaluated after motion blur sampling. So, whenever motion blur is on,
use alpha pre multiplication in 'Effect/Field' category.

3. Applying 'Glow' as an image effect often saves some rendering time, especially when the scene includes objects
that are slow to ray trace (glass etc.) Glow effect must expand the rendered area to ensure continuity over
box boundaries. This render box expansion is not necessary if glow is applied to the complete image.

Multiple rendering configuration



Lens Flare Effect Improved
Random streaks of each flare rendered particle now look different.

A new 'Random Angle' control added. Random streaks can be animated to rotate using it.

Angle controls did not obey selected measuring unit. Fixed.


VSL

Light:illumination now available as an output channel in the Surface Filtering shader

New 'Bleed' options implemented for bump and texture VSL objects. The option extrapolates image edge values outside texture mapped area.

'Flip' option now inverts odd texture repetitions 1., 3., etc. Thanks to this, it provides an easy way to invert non tiled texture and bump maps.

Texture VSL object now includes a new 'blur' setting. The greater the value, the smoother the mapped texture appears. The value represents proportion of the full image, so usually quite small values (0.01 = 1%) are suitable.
Note: 'Gradient' feature also smoothens the pixel boundaries, but smoothing uses only 2*2 pixel blocks. Blur smoothing is not limited, it can use e.g. 10*10 pixel area or more for blurring.

Bump VSL object contains a new 'Smooth' filter, which can be used for removing pixelated nature of high resolution bump maps. The value represents radius of smoothing filter as a proportion of the full image, so usually quite small values (0.01 = 1%) are suitable.

'Raytrace' object is now available in VSL. It is possible to create totally new kind of shading effect using this object. Some examples:

- Blurred reflections by sampling 5-10 rays around the reflected ray
- Global illumination by sampling some random rays around the surface normal
- Fog can reflect the surrounding illumination. Each fog volume sample can trace some rays to examine what is around the position.


Global Illumination example. There is only one point light source in the scene.

A new VSL wizard 'Self illumination' added. It adds an ambient color to the VSL material.

VSL objects now have a new 'Disable' switch, which inactivates the object (and its sub objects) in rendering. Objects can be disabled from the pull down menu or using a check box in the 'General' tab. Disabled objects are printed using italics style in the VSL tree.

Texture animation creation simplified. When the user selects an image/animation file from the material property window, the program checks automatically the type of the file and suggests a suitable format string and a frame index range. In most cases, the only remaining step is turning 'Automatic' indexing on from the 'Animation type' gadget.

The properties of the surrounding volume are now available in 'Surface Properties' shader (in the 'Exterior' raysample). Optical thickness and user defined channels can be utilized for optical effects.

'Operation' VSL object has now one new formula 'refraction'. The operation computes physically correct light refraction. It has the following parameters:

refracted ray = refract(exterior thickness, interior thickness, incoming ray, surface normal)

Duplicate menu added to VSL window. Ctrl+d is the keyboard shortcut for the same operation. Note that Ctrl+drag is usually the fastest way to place a VSL object duplicate into the shader hierarchy.

A new shader type 'Scanline' plugged in. This shader allows render time displacement of scanline objects using materials.

A new 'Identifier' channel plugged in. A material can control outline rendering by manipulating this channel. For example, a texture map can define outline boundaries by writing into this channel. Another example: outlines between surface patch boundaries can be removed by assigning a constant id channel value to a SDS object (or to any suitable object set that should be 'melted' together).

A new 'Recursion' channel plugged in. The cannel contains the current recursion step: 1 for surfaces that are directly seen from the camera, 2 when evaluation surfaces seen at immediate reflections etc.

A new channel 'Signal' plugged in. It defines the signal strength of a traced ray hitting a surface.

A new shader 'Surface finishing' added. It is the very last surface shading step. In this shader, one can perform actions that control the total surface shading. For example, one can compute all illumination contributions to a buffer channel and then define the actual illumination using this shader. Another simple example, a material that inverts surface illumination.


Lighting

Shadow Maps
Shadow map option added to spot and point light sources. Use of shadow maps with spot lights is significantly more efficient as with point lights (because of limited lighting cone area).

Shadow maps and global illumination effects in action.

Shadow maps can be controlled as follows:

Other Improvements
An option that eliminates other than diffuse shading is now available for all light source types (previously available only for ambient lights). If the option is set, 'Surface Illumination' and 'Volume Illumination' shaders are not evaluated for the light source. A typical use is elimination of specular highlights created by fill lights, which have been added to simulate global diffuse illumination.

No shadows (do not RECEIVE shadows) control added to general object properties

A point light with a quality greater than zero but with zero size now renders as a plain point light (no sampling).

Point light source with non zero radius renders now smooth shadows about 25 % faster at high quality values.

Shadow casting of objects that include complex surface properties/surface geometry shaders (such as procedural bump maps) optimized. Rendering speed is often doubled because of this improvement.

The spot light source can now render smooth ray traced shadows. The same 'Size' and sampling 'Quality' sliders are available as in the point light source.


Material Mapping

Custom Mapping
A new 'Custom' mapping type added to default mapping properties. When activated, the user can select any channel whose contents is copied into mapping coordinates at mapping evaluation. This makes use of any vertex parameter channel easy together with the standard library materials which are parametrized by the usual mapping coordinates.


Edge Fading
X, Y & Z edge fading options added to all material mapping objects. These options control smooth fading gradient at 0 and 1 coordinate boundaries (=edges of the unit square) of each dimension. Technically speaking, the options define the width of a linear scope falloff at mapping edges.


A photograph parallel mapped over a wooden background using smooth edge fading

Roll Mapping
Parallel mapping now supports a 'Roll' feature. The Roll option rotates the Z axis of the mapping perpendicular to the surface normal and other axis respectively. The option is most useful when texturing objects that consist of several planar surfaces. For example, one can map one brick pattern to one wall and then spread the pattern over all walls by using the 'Roll' option. This feature can be a real time saver when texturing complex building wall structures etc.


One single parallel mapping roll maps all sides of a polyhedron


Projection types for Cube Mapping
Cube mapping can now compute three different projection types:
Pyramid Mapping
New mapping object type 'pyramid mapping' implemented. This mapping type computes a perspective projection. It can be used for slide projector type effects and for camera backdrop mapping.



Scripting

JavaScript
Support for JavaScript is included in v.4.5.

The low level JavaScript API allows the user to access Realsoft 3D via number of functions, such as R3DoA(), R3GetAttrs(), R3New(), etc. This API corresponds to 'C' API, as defined in the Realsoft 3D SDK.

For example, you can set the window size by calling:

R3SetAttrs(window, R3WGA_Width, 100);

A Native JavaScript API is implemented through set of wrapper classes, which are automatically generated from the Realsoft 3D source code.

For example, if you need to access window objects, you need to load r3window.js file, which defines properties for window object.

include("oops/r3window.js"); Then you can create a window by calling:
window = new r3Window(R3WGA_Parent, _r3gui);
window.SetWidth(100);
window.SetHeight(20);
window.SetTitle("My Dummy Window");
...

To fetch the current window size:
width = window.GetWidth();
height = window.GetHeight();

Another example demonstrating how to create a sphere object with desired properties: include("real/objects/r3sphere.js");
var center = new r3Vect(0.1, 0,2. 0.0)
sphere = new r3Sphere(0);
sphere.SetRadius(0.4);
sphere.SetCenter(center);
Realsoft 3D has new folder 'Script', which contains a number of JavaScript programs demonstrating how one can create various user interface objects and bind them to Realsoft 3D functionality. There is also a new pull down menu which allows the user to execute these scripts easily.

The User Manual contains a couple of tutorials, which should help you to get started (basic understanding of object oriented programming and JavaScript is assumed).

There is also a JavaScript reference manual. The manual was auto generated from the Realsoft 3D source code the same way as the JavaScript wrapper classes.

RPL
RPL interface to Realsoft 3D is also available and introduces several improvements. RPL supports 4x4 matrix operations via MCONSTANT, MVARIABLE, MIDENTITY, MROTATE, MSCALE M!, M@, etc. words.
One might want to use RPL for the sake of speed.


3D Painting

UV Image Tool
The UV Image tool introduces numerous improvements which make it an extremely powerful tool. You can now evaluate any rendering channel to a bit map image. For example, use couple of colored spot lights to illuminate an object and then use the tool to evaluate the illumination to a bit map. This way you can use light sources as a 3D painting tools!

We have also implemented many of the requested improvements:

A new control 'Sampling' is available. If sampling is greater than 1, several super samples per UV image map pixel is taken. This improves quality but increases computation time.

The tool now supports multiple parameters. If level object is selected, each sub object gets its own map.

The parameter channel for evaluation can now be selected.

If other than color property is evaluated or if the parameter channel is not 'UV coords', the tool adds a new material into material library and uses a default mapping object to attach it to the target.

New evaluation methods available.


Caustics map generated using the UV Image tool. The map represents the color distribution generated by a vertical prism.


View Window

Navigation
New View window navigation methods

The middle mouse button can now be used as follows:
'Cruising system' implemented

It has the following controls:
No modifiers pressed (other than Tab key): Alt pressed: Ctrl pressed: Camera cruising can be used independently of other program functionality. You can, for example, create and modify objects, play a simulation animation etc. while flying around.

The camera behavior can be defined using the 'Cruising' controls of the view property window.

All these factors use a relative scale so that factor 1 gives good default behavior.

For example:

To simulate a space ship, set all friction coefficients to zero.

To simulate an airplane, set rotation friction=(1 1 1) and velocity friction=(1 1 0.1)

To simulate a tank, set rotation friction=(10 5 10) and velocity friction=(10 10 0.5)

View Models
There is a new tab in the select window called 'View Models'. Objects in this tab define view window specific attributes. Desired settings can be activated simply by dragging & dropping them into the view window.

View models are not saved with environment chunk, which makes it possible to save view orientation, OpenGL rendering options etc. without saving the actual user interface.

An existing view model can be duplicated similar to any other object in the select window: drag & drop while holding down the Ctlr key, or by selecting the Duplicate popup menu. This allows you to create desired view models easily. You might want to create view models, such as:



Compass
In the View Property Window, Compasses can be edited by drag&dropping macros from one sector to another.

On a small view window the compass is now centered on the view and all labels are drawn inside the view window (previously some labels were clipped). Also the lower margin is now the same as the upper margin.

Modeling

Selection Modifiers
A range selection modifier implemented. CTRL+LMB click selects all objects between the previous selected object and the clicked object within the latter object's parent hierarchy level. If the object is the first selected one in its hierarchy level, then all objects from the beginning of the level to the clicked one become selected.

Example: in a level of 100 unselected objects, CTRL+click object number 25, then SHIFT+click object number 50 and finally CTRL+click object number 100. The result is the selection of objects 1-25 and 50-100.

Ctrl key now acts as a drag modifier in object creation. If Ctrl key is pressed, only selected objects are considered in point snapping. Furthermore, if an object is in edit state, only selected points are considered.

Point Editing
The standard transformation handle (the coordinate system + the rotation handle) is now available also for single point editing. For example, selecting a NURBS point shows you the coordinate system handle, allowing you to move the point.

Multi selecting NURBS points enables also the rotation and scaling handles.

By default, this handle is switched off by SDS object and some other objects which already have extensive set of handles for point editing. The handle can be activated through the wire tab of the property window. If you need it frequently, record a macro and bind it to a compass or a desired key.

Support for 3rd Mouse Button
Support for 3rd (middle) mouse button added.

By default, the middle mouse button can be used for panning or scrolling.

Easier to use Tool Sets
There are three new tool sets for creating NURBS, SDS and analytic objects. Correspondingly the default startup environment contains three new tabs for these tools.

Three sets of new deformation tools added. A desired deformation can now be found much easier.

In v4.2, there was only one Boolean tool, which included numerous sub options. Boolean tools are now non unified so that each operation can be applied through a dedicated tool i.e. through a single click. Correspondingly, there is a 'Boolean' tool group in the Available Objects window.
Normalize Space
Normalize object space tool added. This tool resets the object space to identity, without changing the geometry. It is also possible to reset only certain object space component, such as rotation or scale.

SDS Tool Set

Version 4.5 introduces numerous small but useful improvements to the SDS tool set.

For example, we have gone through all the SDS tools and improved their face material system so that subdivide, extrude and other tools that create new faces also take care of updating the face specific material and uv coordinates for the newly created faces.

The 'Destroy' faces tool now has an option to keep / delete orphan points.


The SDS tool set is also optimized so that many tools work faster.

NURBS Tool Set
The NURBS tool set introduces small improvements here and there. For example, the cube, pyramid etc. modeling tools now use triple knots to define sharp edges rather than triple control points. 'Center' option centers the apex of the cone and the top lid of the cut cone etc.


Construction History System

There is a new tab 'Construction' in the toolbar. This tab now contains a number of tools based on completely new functionality.

The idea is that various tools (such as modeling tools) apply effects to objects by attaching appropriate constructors to the object. The philosophy behind these tools is based on the fundamental 'wooden sphere' idea i.e. a deformed sphere object consists of a sphere and a deformer.

The parameters of these constructor objects can be modified any time and the model is automatically rebuilt.

Because constructors are geometric objects, they provide object handles through which the user can control them as easily as any regular geometric object. For example, Bend constructor is just a geometric object whose geometry allows the user to control bending axis and angle attributes. The target object bends accordingly.

The construction history system follows the fundamental Realsoft 3D philosophy that a wooden table object consists of two sub objects: a table and a wood. In construction history system, a deformed sphere consists of a sphere and a deformation. In other words, a constructor object applies its effect to the object it is attached to.

For example, to control a SDS sphere by using a 3D deformation lattice, one can attach a 'lattice' deformer to the SDS sphere.

One may also bend the deformed sphere by inserting another deformator to the sphere: the bend deformator.

In this case, the 'lattice' deformation is applied first and the 'bend' deformation is applied to the deformed sphere. This shows another fundamental idea behind the construction history system: multiple constructors can be stacked.

It is also possible to apply constructors to constructors. For example, one can apply a lattice deformator to a sphere and then use the bend deformator to deform the lattice.

Constructor objects have many obvious advantages. For example, one can create a set of predefined deformation or modeling effects simply by saving constructor objects and loading them in later to a part of the scene.

In the future, all tools in Realsoft 3D will support this construction history system (including modeling tools, such as subdivide, extrude, tunnel etc.).

Constructor objects can be animated similar to any geometric objects i.e. by modifying them in animation recording mode. For example, to create an animation which bends an object, create a bend constructor and drag its bending angle handle in animation recording mode.

Move, Rotate, Scale
There are three constructors for applying transformations: move, rotate and scale.

Move constructor defines two handles, which allow you to define a translation vector.


Moving cube consists of a cube and a move constructor

Correspondingly, rotation constructor has an axis and a rotation angle. By animating the rotation angle, you can easily create any kind of rotations.

Scale constructor has three axes and three scaling coefficients for scaling the object in desired dimensions.

Radial
Radial Deformed is based on the new construction history system and can be associated with any other constructive object, such as a skeleton or a 3D lattice.

It provides two circle handles which control the deformation.


Deformation can be controlled by modifying the circle handles

The property window allows you to define a non-linear deformations via 'weight curve'. Also random deformations are supported by a 'Noise' option.


Bend
The Bend Constructor can be used for bending any freeform objects, such as SDS and NURBS meshes. It uses two parameters: one straight line and another curved one specifying the bending effect.

Bending device

Bend deformator applied to a NURBS tube


Path Constructor
The Path Constructor is similar to the Bend Constructor in that it has two axes: a straight line representing the starting shape and a curved one representing the deformed state. In a matter of fact, any object, not only a NURBS curve, can define the deformed state. By default, the path deformer tool initializes a NURBS curve but the user can replace it with any geometric object.

Path deformator

The effect of the path deformation

Constructors not only allow you to deform objects, they can also be used as an animation tools. For example:

Play the animation and instead of moving from left to right, the mesh moves along the curve.

3D Lattice
In version 4.5, 3D lattice is based on the construction history system. To use it, just create it over the desired object, enable 'Construct' and single point edit it. You may also keep the 'Construct' option disabled, and attach the object using the old lattice mapping system.


A 3D lattice single point edited. The associated SDS sphere gets edited accordingly.

Also this object can be used as an animation effect. You can apply morphing to 3D lattice itself to create various deformation effects, or you may animate the target object to move through the 3D lattice.

Skeletons
Skeletons introduce numerous improvements. Basic tool set for creating character animations is also included.

Skeletons are based on the new construction history system and they can act as a global 'deformer' objects. To enable new functionality, set the 'Construct' option.

Skeletons can be attached to geometric objects similar to bend, 3D lattice and other deformators: simply creating it into desired hierarchy level.

Skeletons can be combined with other construction history based objects, such as 3D lattices, point groups etc. in a desired order. This allows you to combine various animation effects to create character animations.

For example, create set of choreographs defining facial expressions, such as 'smile', 'wave hand' etc. Then record the animation through weight sliders. In frame 10, set 'smile' to 100% etc.

Another typical work flow for creating a talking and walking character is as follows:

In this case, the skeleton deforms the model, as well as all the point animation effects. For example, if you create a waving mesh by single point editing the mesh in animation recording mode, and then bend the mesh using the skeleton, also the waves bend.

Skeletons introduce numerous other improvements.

Bone Angle Handle

Skeleton constraint handles improved. Now all the three bone angles: Heading, Pitching and Banking, can be modified simply by dragging the desired bone angle handle. The old constraint handles are unified to these new handles so that also constraints can be edited as easily. The big idea behind this rotation device is that it allows you to control only one bone angle at a time.

Unified Angle and Constraint handles

Constraint and bone angle handles


Bone Rotation Handles

Skeletons now also have bone specific rotation handles which allow you to control the bone orientation.

If you just drag the rotation handle, constraints will checked and it is not possible to rotate the bone over the constraints. However, by holding down the Alt key while rotating, one can expand the constraints.

Standard Rotation handles

Bone angles can be controlled via standard rotation handles.

A desired handle type (angle/rotation) can be switched on using the compass menu, just as easily as you can swap between different edit modes when editing SDS objects.

Other improvements

The orientation for the sub skeletons were previously determined by the parent bone they were attached to. In the new system, each skeleton defines so called 'root' joint whose orientation can be controlled independently from the orientation of the parents. This allows you to create much better behaving hierarchical skeletons.

Skeleton has a new wire frame representation which attempts to show the constraints in an intuitive way. It is still possible to use the old constraint handles by activating them from the properties/wire tab.

Constraints

Constraints are now visualized in more intuitive way.


Per Bone Mapping

Another major improvement in skeletons is that mapping can now be controlled on per bone basis. A point can be mapped to a bone with a desired 'weight' and a 'fidelity'.

Skeleton specific tools

Various skeleton tools are plugged in using a completely new idea: they show up when a skeleton and the target object has been multi selected. For example, to control the weight of a mapped point, select the point and the bone, and 'weight' tool will automatically show up on the context sensitive tool bar.


New Angle System

Realsoft has developed a new angle system called HPT (stands for Heading, Pitching and Twisting). The difference to standard HPB (Heading, Pitching, Banking) system is that the third angle is defined in such a way that it minimizes the surface tension. Think about a striped flexible plastic pipe. Bend it to any direction and the stripes along the body tell you intuitively whether there are twisting or not. If the stripes appear spiral like, there is twisting involved. If stripes along the body follow straight lines, the twisting is zero.

In other words, when there is no real twist on the body attached to the skeleton, the third angle 'Twist' is said to be zero. What could be a more natural way of defining bone angles!

This system has several advantages over the standard HPB angle system.

First, you typically have to edit only two bone angles: Heading and Pitching. You need to touch twisting angle only when you really need to get some real skin twisting introduced. In the standard angle systems, the banking angle has nothing to do with real twisting. In animations, you have to edit the banking angle all the time to eliminate unwanted twisting from the body.

Another advantage is that I.K. can now operate based on Heading and Pitching angles only. This makes the I.K. tool much more useful.

The third and significant advantage of the new HPT angle system is that it helps to eliminate the biggest problem with angular spaces. In any angle space, there are two so called singularity points - the poles. When you animate, say, the camera over these poles, you'll get sudden jump at the north pole. The new HPT system eliminates this problem completely. In this respect, HPT angles are almost as good as Quaternion angles, and easier to handle in the curve editor.

Adjustable Bone Diameter

The bone diameter can now be adjusted. The advantage is that you can animate the skeleton and attach the body to the skeleton afterwards. Using an appropriate bone diameters gives you a pretty good picture about how the body would look around the skeleton.

Selection Group
The Selection Group tool can be used for displacing selected points. Groups can also be animated. You may create multiple groups, for example, to define facial expressions, and control their weight.
Point Displacer
The Point Displacer is a deformer which evaluates desired material property, such as color, and displaces geometric points accordingly. This object is also based on the construction history system so it can be combined with the other constructors. For example, you can use two moving point displacers to define waves and ripples on a mesh.

V3 Morphing
Version 3 style morphing will also be included. However, as of this writing, we are not sure if this feature will be released with V4.5 or, as a separate downloadable module.



User Interface

Curves
The Curve Control introduces several improvements:

Point adding by a mouse click and simplify operation no longer affect hidden curves.

Editing accuracy improved: curve hit and point selection tolerance adjusts to zoom scale.

Points no longer become added to wrong curves or positions and point selection is always accurate and easy.

New Bezier type control curve implemented. Automatic key framing creates smoothly continuous Bezier curves. Point editing in curve editor allows creation of sharp angles and linear sections between curved sections.

Numerical curve editing now automatically updates curve limit range

Point selection is now similar to the select window:

Dragging: Several visual errors (trashed borders etc.) fixed

'Esc' key now cancels point moving operation instead of closing the window

A new 'Align' tool added to the popup menu. It projects all selected points to a straight line between the first and the last selected point.

Gradient Curve
A gradient curve gadget implemented. This gadget is an optional interface to curves. It is particularly useful for animating various color attributes but can be used for controlling any curves.


Numeric Interface
Scalar and vector fields support now =+ and =- prefixes. These allow the user to define values in a relative manner rather than overriding the current value explicitly.

For example, the user can define the radius of a sphere by entering:

=+0.5

which means that the size of each selected sphere is increased by 0.5 units.

In vector fields, any of the three components support this feature. For example, to set only the 'y' coordinate for the all selected spheres to 1.0, enter:

=+0 1.0 =+0

A new option to display vector controls using three separate fields is available as well.


Choreographer Window
Choreographer window introduces several improvements in usability, as requested by the users.

Selecting Animated Attributes

Animated attributes can now be selected directly from the choreography list and the right side of the splitter is now sensitive to the selected choreography attribute.


Translate attribute selected for the 'chor0' choreography

The popup menu associated with the choreography list has several new items which can be applied to the selected attribute, such as 'Delete selected attribute'.

Curves

The 'Animation Curves' tab contains now only the new Curve/Gradient gadget, and shows the curves of the selected attribute. This improves the work flow of editing animation curves significantly.


Edit Translate curves of 'chor0'. Bezier curve used.

Animateable Attribute list is still available on a separate tab. This allows the user to access all animateable attributes and enable animation recording for them.

Show Selected Only

The choreography window shows only the choreographs of the selected objects by default. This makes it easier ot manage choreographs in a complex scene. Selecting the root object allows you to access all choreographs on the scene.

Material Browse Window
The material browse window is now smarter. You can drag materials from it and drop the directly to the view window to get them assigned to geometric objects. The material browser automatically loads the material into the current project, if not already loaded.

Saving / loading materials using drag & drop also works now.

Other GUI Improvements
GUI Editing system fixes reported bugs. There are also small improvements which should make GUI editing easier task.

Many gadget alignments are now aesthetically more appealing.

Material images (on the property window) now have tool tips that show the material name.

Frames are now 'grooved' by default.

The First Frame and Last Time gadgets on the animation settings gadget have been replaced with Start Time and End Time gadgets. These new gadgets show the animation range using the current time system (Frames / Real Time / Seconds) and honor the "First frame index" setting.

The name of the selected GUI objects is shown and can be changed on the Gui Object Properties window.

When loading a project changes made to the current project were easily lost since no warning was given. Now a requester opens letting the user to save the current project first.


OpenGL

All face materials are now rendered in OpenGL. Previously, only the current face material was rendered.

'Texture Quality' scale for material display in shaded OpenGL expanded to max. 512*512 pixels.

Updating after material changes is now 3-5 times faster.


Image Formats

RLE compression option is now available in Targa file output

AVI format allows the user to define compression options through the property window.

GIF format supports now transparency option. Transparency is mapped to 'Fade' channel. Therefore, simple materials like

Surface Properties
color = texture(image.gif)
fade = texture(image.gif)

work well (no need to do inversion fade=1-alpha).

Camera Object

Camera backdrop objects are now created non-shadow-casting and non-shadow-receiving by default.

A new 'Vertical film' option added to the camera object. When activated, the picture is taken to a film that is kept in vertical direction (regardless of the camera orientation). This technique eliminates perspective projection for vertical lines i.e. all vertical lines appear parallel after the projection.

Note: If the camera pitching gets so high that view cone does not entirely fit into the vertical film plane, a usual perspective projection is applied. Thanks to this, you can edit the object temporarily from the top view and then return back to perspective corrected view without any need to turn the option off and on.


And More

Version 4.5 fixes many of the known problems reported by the users and these bug fixes are not listed in this readme file.

Realsoft reserves all rights to change the final V4.5 feature set.