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:
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:
- caustics on/off
- caustics map resolution
- automatic brightness calibration
- manual brightness adjustment
- quality (sampling) level adjustment.
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:
- bmp output1: name = mypic_colors.bmp
- bmp output2: name = mypic_alpha_and_distance.bmp
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:
- Drawing channel
- Trigger channel
- Line width channel (optional)
- Minimal line width
- Maximal line width (used if width channel selected)
- Triggering range
The main purpose of the effect is to filter outline rendering.
An image created with the new 'line' effect.
For example:
- Ray trace in double resolution and outline on
- Apply Line effect to get thicker lines
- Scale the result down to 50 % resolution
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 size: Defines how wide the computed effect is.
- Brightness: Controls brightness
of the overall effect. The intensity of the effect depends on the brightness
of image areas generating the glow, and this slider provides a top level
control to the whole effect.
- Threshold: only image areas whose
brightness exceeds this limit generate glow. Each sub channel is processed
independently. If the 'Threshold' is 0.9 and pixel's illumination is red=0.5,
green=0.5, blue=1.0, only blue glow becomes added to the surrounding area.
- Accuracy: sampling accuracy for
the effect. Values at 0.1 ... 0.5 range should work well for most cases.
The full accuracy 1.0 can make the effect very slow, especially when the
image contains thousands of pixels.
- Destination: the channel which
the glow effect changes. Usually should be set to 'Color'.
- Threshold channel: the channel
whose brightness triggers the effect. This can also be 'Color'. However,
since color channel values are usually limited to 0..1 range (because of
byte storage type), the 'illumination' channel which has a higher dynamic
range, allows more interesting effects (with the cost of increased memory
usage).
Glow Effect Improved
Glow post effect works now much faster. It includes two new controls.
- 'Maximal size'
value defines a global limit for channel defined glow sizes. The global
control can be used as an easy top level control for the effect, and to speed up
the effect. Glow effect must usually render some additional image area outside
the visible image to ensure effect continuity at image borders. The global
size control
instructs the program of what is the required extension area. The smaller
the value, the quicker the rendering becomes. The default value is 0.1 (= 10 % of the
image width).
- Quick mode uses a simpler solution
to generate the glow from interior pixels of a glowing object.
If the option is not
set, every glow pixel generates a spherical 3D volume of a glowing matter
around it,
and such glows are blended into the final result. This is a very computation
intensive task and takes long time to render. Quick mode uses
a simpler approach, but usually the results are very similar - especially
when glow size and color value variation is small.
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.
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:
- Shadow maps can
be turned on by changing the shadow type from 'Ray traced shadows' to 'Mapped
shadows'
- The larger the 'Size' value of
the light source, the smoother the shadows become. Generally speaking, size
(measured using the current measuring unit) should match the dimensions
of the model. The default size 0.1 meters is OK for example for a room interior.
- The higher the map 'Resolution',
the sharper the shadows can be. Very rough shadow maps (e.g. 50 pixels)
usually produce extremely blurred shadows. High resolution maps also reduce
rendering artifacts (inaccuracy, pixelisation) which are typical to this
shadow computation method. However, high resolution maps increase rendering
time.
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:
- Volumetric mapping
by six pyramid like projections to the cube map center. This method does
not require surface normal and works with all shaders.
- Environment mapping which maps
the reflected ray and uses pyramid projections like previous one. Surface
normal is used in reflection computation, hence this mapping type makes
sense only for surface related shaders.
- Surface normal controlled mapping.
In this alternative, six parallel maps project the materials. The surface
normal direction selects which one is applied. This projection type produces
good results also when the cube mapping geometry does not match the target
object geometry. For example, you can map a roof material, a floor material
and 4 wall materials to a set of houses using one single cube mapping.
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.
- 'Direct Lighting'
evaluates diffuse surface lighting. Possible surface illumination shaders
are not evaluated to ensure that viewing direction dependent components
such as specularity are excluded. The 'Backside' checkbook selects for which
side of the surface illumination is evaluated. If a light source is included
in the selection, the side of the surface illuminated by the selected light
is evaluated. Backside option selects the opposite side.
- 'Indirect Lighting'
evaluates indirect global illumination - diffuse light reflected from other
surfaces.
- 'Caustics' evaluates
refracted/mirror reflected light from ALL light sources to selected objects.
You can make undesired light sources (and irrelevant objects) RayTrace-invisible
before applying the tool to optimize its performance. Caustics evaluation
takes advantage of the distributed rendering system.
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:
- Dragging pans the
view (the same as right mouse button + Ctrl key)
- Shift + dragging moves the camera
forwards/backwards
- Alt+dragging rotates the view around
camera position (not around the aim point as Alt+RMB does)
'Cruising system'
implemented
It has the following controls:
- Tab key activates
cruising mode (active until Tab is released). The hot key can be changed
using registry key Classes/root/GUI/Window/View Window/DriveKey
- Cursor keys change camera motion
as described below
- Shift key is a 'turbo' key
No modifiers pressed
(other than Tab key):
- <up> accelerates
- <down> decelerates
- <left> turns to left
- <right> turns to right
- <left> & <right>
decrease bank & pitch until camera flies along horizon.
- Use it if you have lost the control
of your space ship!
Alt pressed:
- <up> turn
upwards
- <down> turn downwards
- <left> bank to left (counterclockwise)
- <right> bank to right (clockwise)
Ctrl pressed:
- <up> move
up
- <down> move down
- <left> move left
- <right> move right
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.
- Rotational friction
defines how the surrounding matter resists rotations
- Velocity friction defines how the
surrounding matter resists camera movements
- Engine power defines how rapidly
view camera accelerates when cursor keys are pressed
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:
- front view
- side view
- shaded OpenGL custom view
- etc.
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.
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.
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:
- Create a mesh moving
from left to right
- Create a path deformer, whose axis
points from left to right
- Single point edit the NURBS curve
to define a desired deformation path
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:
- Create a talking
head by single point editing the object (exactly the same way as in v4.2).
- Create a skeleton and animate the
skeleton to make the character to walk.
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.
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.
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 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:
- LMB click = select
a new point
- SHIFT+LMB click = Add a single
point to selection
- CTRL+LMB click = Add a selection
range from the first previously selected to the clicked point
- SHIFT+CTRL+LMB click = Toggle selection
- ALT+LMB click = Deselect a point
Dragging:
- LMB drag = New
selection: deselect previous points and select new points inside a drag
box
- SHIFT+LMB drag = Add operation:
add points inside drag box to selection
- SHIFT+CTRL+LMB drag = XOR operation:
toggle selection state of points inside a drag box
- CTRL+LMB drag = And operation:
points inside the drag box AND which were already selected become selected
- ALT+LMB drag = Subtract operation:
deselect points inside a drag box
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.