Welcome to Realsoft 3D Version 5


If this is the first time you use the software, the tutorials of the User Manual help you to get started. Advanced users may find the new, extensive tutorial Harry about character modeling and animation interesting. You can find this tutorial from the introduction chapter of the manual.

If you are a new Realsoft 3D user, remember to register your license! It qualifies you for technical support, upgrade announcements, special customer discounts and an access to free software updates at realsoft.com. After installing the program, you can register easily from the pull down menu Help/Realsoft in the Web/Register.

The rest of this readme file gives a quick overview of what is new in Version 5. To keep this introduction easily readable, the new features are described here only briefly. For more information, please consult the user and reference manuals.

Thank you for choosing Realsoft 3D!

Subdivision Surfaces


Subdivision surface modeler has been one of the Realsoft's strongest assets. Version 5 makes it even better. Several new tools have been implemented and many existing features have been improved based on the feedback from users.

Duplicate And Mirror

This new tool automatically duplicates a half modeled object, mirrors the duplicated geometry and finally connects the parts to get a complete object. For example, model the left side of a head and get a complete head with a single click. The tool works as follows:

  • The duplicated geometry is mirrored about the loops of open edges (holes or borders).
  • The mirrored geometry is connected to the edge loop(s).
  • The vertices at the edge loops are not duplicated.
  • If the surface has more than one edge loop, then the desired mirroring loop can be defined by selecting one edge from it.


Half modeled object on the left. Click the tool to get a complete object.

The newly created geometry is automatically selected so that it can be edited further easily.

Flatten

The Flatten tool flattens the selected faces, edges or points to a plane. The tool is smart and detects the desired flattening direction by studying boundary of the selected region and performs 1D scale operation with a single click.

Fill Holes

Most object libraries for 3D programs use polygons to represent the model geometry. Many of the polygon models contain small modeling errors, such as holes covered by overlapping edges. Such errors may not be visible in a polygon renderer, but if you want to render the object in better quality using Realsoft 3D's non-faceted SDS technology, those errors become much more visible.

The Fill Holes tool addresses this problem. It scans through the selected SDS object or the selected faces and fills all holes by adding faces. A tedious, often almost impossible editing task can now be handled with a single click on the tool button.

General Triangulation

The Triangulate Faces option of the SDS Tri/Quad tool splits the selected faces to triangles without adding new vertices. Concave faces triangulate well without folding.

Unwrap

This tool unwraps (unfolds) the points in the selected SDS objects. The tool can be applied several times to control the level of unfolding.


The effect of unfolding

Separate

There are two new tools for breaking SDS surfaces: Separate Points and Separate Edges. The new tools are unified with the old Separate Faces tool: There is now a single Separate tool, which is sensitive to the current selection mode (point/edge/face).

In edge edit mode, the tool separates faces along the selected edges. The following two images demonstrate what the tool does in edge mode:

In the point editing mode, all edges that are connected to the selected point are detached, as demonstrated by the following image.

Weld

This tool welds two surface boundaries together by adding faces to the gap. If there are more than two boundaries, then selecting an edge or face at the desired boundary defines the target. The tool can connect boundaries with different vertex count. The following two images demonstrate the tool:


Extrude, Subdivide and Bevel Improved

These tools introduce a small but very useful improvement. They no longer use uniform scaling to extrude, bevel or subdivide faces. The tools now maintain the original edge and face directions and use a constant displacement.

For example, a cross section of a house can be extruded outwards to obtain walls with a uniform thickness.


Extrude to get walls with desired thickness

SDS Handles Fine Tuned

SDS editing tools such as extrude, subdivide and bevel now support grid snapping in an optimal way. Moving a beveling handle does not simply move the handle along the grid - it creates beveled edges using grid interval stepping from the original edges. The grid can be disabled temporarily with the Shift modifier. These small improvements make certain tasks significantly easier.

SDS Optimizations

SDS modeling engine introduces several optimizations. The program can now handle much bigger scenes smoothly.
  • OpenGL rendering speed of SDS models consisting of a large number of faces is improved.
  • Ray tracing of detailed SDS models is faster.
  • The edit handle detection system has been optimized

SDS Material Previewing in OpenGL

Multiple texture and material layers can be assigned to SDS objects. Previously, OpenGL was able to show only one of these materials at a time.

In version 5, the system evaluates all materials the same way as the photo realistic renderer will use them. In other words, face materials, face textures and material mapping objects are all taken into account.

SDS Face Images

Direct face textures (images) can be added to SDS faces. An easy way to attach an image to a face is drag and drop: select the face(s) and drag an image from the select window to a view window.

SDS UV Images

The UV Image tool can now add face materials to SDS objects and evaluate any property into the material. The 'Per Face' option activates the face material generation. The user does not have to do any UV editing before applying this tool: faces are automatically arranged into the UV plane as regular arrays. The whole process is fully automatic and requires only a single click.

UV Coordinates from the View Projection

When a material or an image is dragged and dropped into SDS faces, the face UV-coordinates are defined by the current view projection. The workflow is very straightforward and useful UV coordinates can be defined just in seconds simply by navigating the view. A real time saver!

Unwrap UV

This is another new tool for managing SDS UV coordinates. The tool unfolds the currently selected UV coordinates. It can be applied several times to control the level of unfolding.

Default UV

This tool provides an easy 'single click' solution to initialize useful values for the currently selected UV coordinate channel. The tool uses spherical projection to generate useful UV coordinates. The computed UVs can be adjusted for example using the new Unwrap UV tool.

UV Set


In addition to the above mentioned improvements, Version 5 introduces a completely new solution for uv editing, namely the UV-Set object.

UV-Set is a new powerful object for defining UV coordinates and material attributes for subsets of SDS objects. The power stems from the fact that the UV-set object is derived from the SDS object itself. Many of the tools available for editing SDS objects are now also available for UV editing. Managing UV-coordinates is now as easy and powerful as editing the actual SDS objects itself.


UV-set for texturing the upper half of a character's face

Let's take a closer look at the workflow.

Creating UV-Set Objects

There are two ways of creating UV-set objects:

1. Select an SDS object in the object edit mode and apply the UV-set tool with the Cubic UV-set option. This creates six UV-set objects representing front, back, up, down etc. directions.

2. Switch the SDS object into the edit mode, select faces and click the UV-set tool with the Selected faces option. This creates a single UV-set of the selected faces. In this case, the UV coordinates for UV-set vertices are fetched from the usual UV channel of the SDS object.

Of course, you can use edit/copy-paste and duplicate tools to create new UV-sets from existing UV-set objects.

UV-set objects are created as child objects to the SDS object.


Surface division into UV areas and their texturing is managed efficiently using the select window

Then you simply assign desired materials to these UV-Sets! Any number of material mapping objects (parallel, spherical etc.) can be applied to an UV-set objects to texture the actual SDS model.

UV-set also supports the direct texture definition in the property window's Col tab, as well as vertex channels, which now can be assigned memory efficiently only to sub areas of the SDS mesh.

Because the UV-set object is SDS based, many SDS specific modeling tools can be used for editing. You can delete faces from the UV-set, add new faces to it, join faces, unwrap and so on. All these tools are instantly available in the control bar as soon as you select an UV-set.


UV editing tool set

In addition to the standard SDS editing tool set, there are also some UV-set specific new tools:

UV-set to Face Material converts selected UV-sets to face materials of the parent SDS object. UV-set object's child mapping objects define the face material names. The UV values for the face materials are taken from the UV-sets. With this tool, you can convert the hierarchical UV-set based texturing into a simpler form for exporting purposes.

Connect tool can be used for connecting two separate topological face groups into one. From View this tool takes the current view projection and uses it to set the UV coordinates of the selected faces of the UV-set. Select some faces, navigate on the view window and click the tool. Simple and quick.

UV Editor


The UV Editor itself introduces some major improvements allowing you to edit uv coordinates of SDS objects and UV-sets easily.

The improvements include:

  • The UV Editor supports the same point snapping conventions as the View window (snapping via drag box or lasso selector and key '5').
  • UV Editor's backdrop image stretches to the match the window proportions.
  • UV Editor's backdrop image generation is now fully automatic.
  • UV editor's popup menu rationalized. The handle type and the target of editing can be selected from a simple and clear popup menu.
  • UV Editor supports versatile UV editing tools, available via the new UV-set object.
  • UV editor no longer draws child objects of edited items. This avoids conflicting select handle definitions and some other confusing errors.
  • UV editor no longer draws the useless coordinate axis guide (old setups may have this option enabled).
  • There are also several little but important changes. For example, UV editor's default rendering color changed from black to dark gray, making UV mesh visible outside the backdrop image area.
  • UV editor's handle selector menu (point/face/edge) now also sets the object to the edit state.
  • Face materials of a SDS object can be edited in UV editor also when the object has no vertex UV channels.
  • Material drag & drop to view now updates the UV Editor.
  • A new compass menu is available for editing UV-set points, edges and faces.

Animation System


Choreography System

While v4.5 had only one choreography class - the key framer, Version 5 has several of them, and the whole choreography system is now construction stack based.

Keyframer is a choreography that monitors users actions and records them in a time sensitive way. When you modify objects, the key framer choreography reads the new modified values and saves their changes to a set of animation curves. Later, when the animation is played back, the key framer interpolates the animation curves and sets the recorded values back to the object.

The Pose choreography is similar to keyframer in that it also records the modifications the user applies to objects. However, key framer operates only in animation recording mode, but Pose operates when animation recording mode is not enabled. In other words, pose records operations, which are independent of the animation time. For example, if you have a bouncing sphere and you move it with animation recording off, the system creates a pose choreography to represent the translation. So you will get two bouncing spheres bouncing at two different positions. Pose can also be used for defining static poses (such as facial expressions) easily.

The Noise choreography can be used for adding some shaking to any animation channel easily. Drag & drop it into a 'bouncing sphere' to get 'bouncing and shaking' sphere. Apply it to a moving camera to get some natural freehand shaking.

Lattice mapping is also a choreography now. You can now modify lattice mapped objects as easily as any unmapped objects.

Simulation choreography takes care of applying various simulation effects to objects. This allows you to use, say, key framing to fine tune motions generated by the simulation system. Or, use noise to shake them.

Script choreography can control any animation channel through a simple variable interface. For example, create a bouncing sphere by animating the translate attribute. Then make sure the ball does not fall through the floor by using the following JavaScript:

if(P.y < 0) P.y = 0;

Choreography Hierarchy

The choreography system supports now hierarchy by introducing a level choreography, under which all the actual choreographs are created. This parent choreography can be opened and closed to show or hide the details of child choreographs. It also provides a parent time line through which you can control all the time lines of sub choreographs.

Choreography Window

The choreography window introduces many improvements. You can change the order of choreographs by using drag and drop. You can duplicate a choreography and assign it to another object simply by drag and dropping it with the Ctrl modifier.

Drag Constructor

The old Real3D drag method is included in Version 5 in a more advanced form.

This object uses the collision detection system to eliminate slipping feet effect. It does this by studying the movements of the sub parts (such as the legs).

Drop a spinning wheel on a ground and it will start to roll. Place a robot moving its legs on a floor and it will start to walk.

The constructor also supports surface friction so that you can create a robot walking on ice. Gravity is also supported - if the robot walks off a cliff, it starts falling.

Inverse Kinematics Object

This is a new special purpose object for controlling skeletons with Inverse Kinematics. It acts as a handle, which controls joints of a skeleton.

The particularly useful aspect of this object is that it separates motions from skeletons. Animated IK objects can be saved to a motion library for later use. Reusing such a motion is easy, because an IK object automatically binds itself to a new joint inside it.


Attach IK Objects to a skeleton. Attach skeleton to a body. Animate the IK objects.

Because the object is construction stack based, it can be combined with other kind of animation effects easily. For example, you can use keyframing to fine tune or override IK defined motions. Then apply a noise choreography to add some shaking.

Morphing Object

This is another feature which was already in Real 3D version 3. Now it is fully integrated in the animation system of the Version 5. You can control timing, create new keys and delete keys exactly the same way as you can manage key frames of an ordinary key frame animation: by using the choreography window.

Morphing object supports the Periodic option, which means that cyclic motions are easy to set up.

Carriage

Carriage object is a special purpose modifier, which converts a deformation effect to a linear transformation. Thanks to this, you can use any deformator, such as skeleton, bend or displace, to transform objects without deforming them.

For example, if you don't want skeletons to deform certain part of your model, just bind those parts to the skeleton through the carriage object.

You can also disable transformation components. For example, you can use a bend constructor only to translate target objects. They will move with the bend curve, but not rotate, scale or skew.

LookAt Constructor

In addition to the lattice mapping based 'Look At' option of the previous versions, there is now a new, much more powerful solution: the LookAt Constructor.

Just select some objects and create a LookAt object for them. Now move the objects or the LookAt object, and the objects will rotate accordingly. The new LookAt object includes options for disabling undesired transformation components such as Pitching and Banking.

For example, you can create planar texture mapped trees and use a LookAt object to rotate them. The trees will rotate around their trunks, so that the textured planes keep facing towards the camera.

Or, use a skeleton to create a basic character animation and apply two LookAt objects: one for the head and another one for the eyes.

Workflow of the Construction Tools Improved

Usability of the Construction Tools is improved in general. They are now as easy to use as any basic tools. Select objects, apply the tool and that's it. Version 5 also includes a new tool set for attaching and detaching objects with constructors.

Improvements to Skeletons

New dramatically faster and more accurate inverse kinematics algorithm.

New non-cumulative Inverse Kinematics option added: if you move the mouse back to the initial IK position, the skeleton returns to its initial state. This feature provides the user with better control when creating character animations. The old cumulative IK is still supported and can be enabled with the Alt modifier.

Animation Playback Window

The animation playback window introduces many new features for speeding up your workflow.

The time slider supports the mouse wheel, just like all other scrolled windows do. The wheel scrolls the time knob forward / backward.

The window also introduces the following new time controls:

  • Play forward and backward
  • Jump to the first / last frame.
  • Jump to next / previous key frame.
  • Play to the next / previous keyframe.

The playback window now includes a key frame interface. You can edit key frame timing of the currently selected objects.

For the maximum efficiency, some of the timing controls are also available via Shift and Ctrl modifiers and mouse: Shift snaps to the key frames, Shift + LMB jumps to the next/prev key. Ctrl activates a play to mode: Ctrl + LMB plays to the next / previous key. Just Ctrl click on the time slider to see how the animation proceeds between two subsequent key frames!

The animation playback window has a control for selecting the current choreography. For example, create a facial expression. Then animate it. If you now realize that the initial position was not quite right, just make the initial choreography the current choreography and modify the object to fix its original state. Then jump back to the last choreography and continue animating.

You can enable and disable attributes for key framing from a pop-up menu. This is useful if you want to modify objects interactively, but don't want certain attributes to be animated.

The key frame gadget can be zoomed with Shift + mouse and panned with Ctrl + mouse, similar to other windows. If a long animation has many key frames near each other, no problem: just zoom in to edit the keys with a great deal of accuracy.

Real Time Playback

The animation system supports a 'Real time' playback option. If set, the playback rate is synchronized to the given FPS (Frames Per Second) value.

Image Object Animation

The image object has now similar animation controls as the texture VSL object. Separate indexed images as well as AVI files can be easily viewed as an animated view backdrop.
  • Use the file browser to pick one image of the sequence or an .avi file
  • Turn Automatic image indexing on
  • Drag and drop the image to a view

Rendering Still Images with Motion Blur

One new handy feature, which is worth mentioning here is that you can now easily render still images from animations that have field rendering or motion blur enabled.

Just click Render in the File/Render window and the program asks whether you want to render one component image or a complete frame (consisting of several time samples / fields).

If you choose to render a complete frame, the program automatically renders all required sub images and combines them into a single frame. By the way, motion blur sampling rate is freely adjustable in the new version.


Render a motion blurred still image with a single click

Materials


The material system introduces many improvements as well.

Evaluation Priority

Material mapping evaluation priority control added. By default, material maps are evaluated in the order they appear in the hierarchy, deep sub level materials last. The hierarchy defined evaluation order can be overruled with the mapping priority setting.

This is especially useful feature when using shaders, which collect information for post shading and other post processing purposes. A suitable priority ensures that the shaders can be assigned conveniently at the root level, but they still become evaluated last, so that they can take all other materials into account.

Begin/End Illumination Shaders

New Begin illumination and End illumination shaders added. These shaders start and finish the light source interaction with surfaces. You can use the shaders to extract lighting information for post processing purposes.

Four Dimensional Noise

The noise objects of VSL (perlin, cell) have an option for 4 dimensional input. 4D noise is very useful for animating gaseous materials such as fire.

Map VSL Object

A new VSL object 'Map' added. It recomputes the map coords value from the given parameter. The object is compatible with all material mapping objects that use a 3D geometry to define the mapping function. Surface defined coordinates (vertex variable interpolation etc.) are not supported.

The main use of the Map object is to provide a consistent parametrization for randomized sampling. For example, a volumetric fog shader may change the sampling position slightly to examine the volume better:

volume properties vector variable pos
vector variable mc
delta = random(map coords)
pos = add(coordinates, delta)
mc = Map(pos)
turbidity = Noise(mc)
...

This kind of fog density definition appears consistent for a moving camera, self-shadowing fog etc.

VSL Syntax Guiding

The VSL editor now guides the user better: VSL objects no longer can be inserted to syntactically incorrect places. Also, the popup menu of the VSL gadget hides the illegal objects.

OpenGL


OpenGL rendering introduces some major improvements.

The time-consuming conversion of procedural, 3D volume defined material and surface attributes into an OpenGL compatible form is no longer a problem, because it happens asynchronously and gradually.

When a material or surface geometry changes, the user first sees a rough representation of the texture, which then step by step becomes more accurate until the actual defined resolution is reached.

This gradual texture evaluation process can be interrupted any time and the evaluation will continue as soon as there is free processor time available.

Let us go through a simple example to demonstrate how the new system works in practice.

Create a large number of objects, say, several hundreds of teapots. Now drag and drop a material into all of them and watch how texturing starts spreading over the surfaces. When all teapots are textured, you will see how the next round makes them look better. You may freely modify the objects, rotate the view or create new objects during this process. You can really modify an object and simultaneously see how the texture gets generated over its surface!

Thanks to this new ingenious design, the program can smoothly handle complex textured scenes.

Needless to say, owners of dual processor systems will really appreciate this feature.


Gradual texture evaluation

Other improvements include:

  • SDS textures are visualized correctly, even when the UV coordinates are not properly set.
  • Texture updating is faster in general
  • Illumination textures (such as a backdrop texture) are now shown in OpenGL
  • OpenGL supports average maps

Distributed Rendering


The distributed rendering system has taken a major leap forward in manageability and easiness of use.

Automatic Multi Threading

The number of available processors is now studied by the program. Rendering automatically multi-threads to take advantage of the Symmetric Multi Processing feature. In other words, in a dual processor system, both processors are automatically used for rendering. It is naturally possible to switch to a manual operation mode, where you can control the number of threads yourself.

Automatic Image Subdivision

An optimal box subdivision is computed automatically from the number of processors and rendering servers.

Public Rendering Server

Rendering servers can now be linked to global or local rendering farms for automatic distribution. Instead of entering host names to a server list manually, you can register your rendering servers to a Public Rendering Service.

A rendering client needs to know only one address - the public service - to take advantage of the whole rendering farm. The service takes care of distributing rendering to currently available servers. This makes configuring, managing and changing large rendering network much easier.

User groups can share their rendering resources via the Internet and build large, dynamic rendering networks. Any user can hook in and out rendering servers any time, because closing a server does not cause unrecoverable errors.

A rendering client can also define minimum memory requirements for the rendering service. Systems, which won't be able to handle the project, will not be used.


All rendering projects are automatically distributed to all processors. A new Public Rendering Service makes render farm management and use easy.

To configure a public rendering service on your LAN:

  • Start the Public Rendering Service program in one workstation (let's call it 'prshost')
  • Start the rendering daemons on each workstation you want to use as a rendering server and ask them to register to 'prshost' by setting the 'Public Host' field to 'prshost'.

Now start Realsoft3D and instead of listing the servers you want to use for rendering, just enter the name of 'prshost' in the render settings and turn the automatic distribution switch on.

Graphical Front End to Rendering Servers

A rendering server can now be controlled through a graphical user interface. The rendering server also supports a task bar icon so that you can disable and resume a server easily any time. For example, if you need a workstation for a heavy task, you may temporarily disable the server and enabled it again later.

TCP Ports

The ports, through which the distributed rendering system communicates, can be defined with the host name as 'host:port'. When using the Public Rendering Service, the port numbers are automatically fetched and associated with the host names. This is necessary, because PRS can access rendering farms anywhere in the world - the user cannot be aware of or control the port numbers of dynamically changing, external rendering farms.

The default port number for the rendering daemon (RendD) is 10050. PRS uses the port 10051 by default.

Instancing


Instance Objects

Instance object now has a new option, which disables matrix transformations of the source object. This new option solves jump problems, which happened when moving instances across the hierarchy. Another advantage is that the original object can be transformed without changing the instances.

The system is also optimized so that a large number of instances (1000 or more) operate much faster.

Several instance specific problems are also fixed: all instance generations (instances of instances etc) display object transformation handles, support snapping and allow selection from the wireframe.

The following improvement is also handy: modifying an object several times with the Alt key held down no longer creates a complex chain of instances of instances etc. Now it creates the instances from the same originally selected object.

File Instances

The file instance tool now locks the bounding box proportions to match the selected file. If no bounding box is defined, during the instance creation, the tool loads the initial source object unscaled. Thanks to this new dimension locking feature, the loaded object matches the displayed bounding box exactly.

Changing the destination file adopts the bounding box to the new geometry - only the transformations defined after the creation remain intact.

File instances now load and render materials correctly.

Hair, Fur, ...


Ray Traced NURBS Curves

Nurbs curve can now be rendered as a memory efficient ray traced object. The curve rendering supports geometry displacement by materials and variable thickness, which also can be controlled using VSL materials.


Interpolator

A new and very powerful Intepolator object is now available. It produces the given number of interpolated copies of its sub objects for photorealistic rendering. For example, you can create 1000 sample hairs and render them as 100 000 hairs with this object.

The interpolator object features distance triggered interpolation and geometry randomization.


Grass created from a few sample curves with Interpolator

Paste Tool

The Paste on Surface tool has been improved radically. It now supports many different ways to airbrush object copies into 3D space and to surfaces. The tool also includes several options to control the directions of brushed objects.

The paste tool is useful for attaching hairs to a character's skin, plants, rocks etc. details into a landscape, and when creating object clouds for metaballs and various simulation systems.

The brush size can be adjusted with the mouse wheel.


Particle Rendering

All particle types now support ray trace rendering. It is more memory intensive as other rendering methods but usually produces most realistic results. Because the particle object stores geometry data efficiently, it is possible to define much more complex ray trace rendering geometry by using particles as by using real modeled objects.

Also NURBS curves can be rendered as post processed objects. In other words, 1D, 2D, 3D particles and NURBS curves can all be rendered as:

  • Scanline objects
  • Ray traced objects
  • Post processed objects

The post particle system now supports distance sorted drawing. The option can be selected from the 'Particle Effect' properties. Sorted drawing is slightly slower than unsorted drawing (a couple of seconds/100 000 objects), but renders particles more consistently.

3D particles now have similar controls as other particle types (diameters values, pointwise attributes etc.).

Quadrangle Particles

1D and 3D particles introduce a new option 'Ray trace as Quadrangles'. The option can be accessed through the property gadget / Spec / Render tab.

If the option is set, 1D particles are rendered as squares, which always face towards the camera. Rectangles defined by 3D particles can have arbitrary orientation and proportions. In both cases, each particle defines rectangular UV coordinates over its area, making the texturing process very easy.

The rendering solution of ray traced particles is memory efficient, meaning that hundreds of thousands of particles can be created to model leaves of trees, snow flakes and other detail rich geometries.


Texture mapped rectangular 1D particles

Particles introduce many other improvements as well. For example, geometry and attribute randomization at point count changes is improved. Particle airbrush can be adjusted with the mouse wheel. The airbrush tool has new controls for setting and randomizing the size and orientation of particles.

New Post Effects


Frame Blur

A new Frame Blur effect implemented. With the effect, you can average (blur) a defined amount of image files or .avi file frames and use the result in post processing.

The controls are similar to the normal Blur effect. Time based global illumination filtering uses this effect.



Time blur effect applied

Edge Detection

The edge detection post effect has now a new option for geometric continuity based edges.

Edge detection effect applied

Gradient Effect

A new image post effect 'Gradient' added. It computes the image gradient i.e. intensity change derivatives. The gradient is useful for image analysis and for special effects.

Particle Lines

New 'Particle Lines' particle effect added. It is a suitable rendering method for raindrops and other 2D particle based post effects.

Improvements to Rendering Engine


Improved Outline Rendering

Outline rendering no longer draws outlines on reflected object boundaries. Secondary ray shader now includes the identifier channel as an output channel, and the user can control outline recursion more accurately with custom shaders.


Texture mapped and reflected outlines

Global Geometry Quality

The render settings object now includes a control, which adjusts object specific rendering quality.

For example SDS and NURBS objects have adjustable quality. Medium quality renders with the actual quality value of each object. Low quality decreases object quality values and High quality increases the values.

For example, a draft quality setting for preview purposes can decrease the geometry quality to speed up rendering.

Automatic Memory Management

A new automatic mode, which selects what kind of memory use policy the render engine uses, helps to optimize the rendering speed and to avoid use of slow virtual memory. The program examines the number of render threads, scene complexity, the amount of memory etc. and uses RAM memory accordingly. The automatic mode is the default mode and especially helpful for new users.

Post Shading System

Realsoft 3D Version 5 includes a post shading system, where the user can adjust shading components quickly after the time consuming ray tracing phase.

The system also improves rendering quality by filtering noisy shading components, such as shadows from area light sources.

The shading system has an open architecture: it is built using the standard VSL and post effect objects. This means that it can be customized by adding new, more detailed controls or speed optimized by removing unnecessary components of the shading pipeline.


Post shading used for improving shadow quality

Other Rendering Improvements

More render statistics is printed to the progress bar.

Render clients deallocate remote scene data at deletion. Therefore, the view rendering cache no longer occupies memory at render servers after program exit.

Ray trace optimizations proceed now much faster for complex scenes (100 000 surfaces or more). In extreme cases this may double the rendering speed.

Cancel button stops view rendering much quicker (at every pixel instead of per screen line)

Caustics sampling scale is now proportional to the square of the control value. The new scale covers much wider range of sampling rates.

Batch Rendering

The BatchRen utility introduces a number of new startup options, which make it a very powerful tool.

-out [filename]

This overrides the default file name defined in the project's output settings. For example, to render a project to a file named 'myimage', enter:

BatchRen -out myimage project.r3d

Another improvement is that you can now pass more than one configuration project to the batch renderer. This feature can be a real time saver.
batchren -file "lightset1.r3d;matset3.r3d;animset3.r3d" myscene.r3d

-play

Render the whole animation (not just the current frame).

-first [frame]
-last [frame]

If the -play option is defined, then these two switches can be passed to define a frame range.

An example: Let's imagine you need to render your scene with various lighting conditions. To do this, create a desired number of configuration projects, which each defines a lighting setup. For example, you can build three projects lowlight.r3d, brightlight.r3d and softlight.r3d.

Then create a simple script that renders the actual project file as follows:


BatchRen -file lowlight.r3d -out lowlight myproject.r3d
BatchRen -file brightlight.r3d -out brightlight myproject.r3d
BatchRen -file softlight.r3d -out softlight myproject.r3d

Scripting


JavaScript

JavaScript support has been developed further. The system is now more efficient and easier to use.

Property Window / Scripting

JavaScript interface is now automatically attached to an object, which has a script associated with it. The object can be accessed through a 'self' variable easily.

For example, you can attach the following script to an object in order to control its translation:

    translate = Self.GetMatrixTranslate();
    if(translate.y < 0) {
        translate.y = 0;
        Self.SetMatrixTranslate(translate);
    }

Scripting Choreography

JavaScript based choreographs can be written easily, because a variable interface is automatically defined for this purpose. The following variables are defined:

  • P - target attribute (such as Translate, Rotate, Color etc.)
  • Target - target object
  • Time - current time
  • Input - input object, if given

For example, if you have animated a bouncing sphere and you want to make sure the sphere does not fall below the ground plane, you can create a choreography with the following script:

    if(P.y < 0)
        P.y = 0;

The variable 'P' represents the attribute, to which the choreography is associated.

Another example: to make a rotating object rotate 1000 times faster about the 'x' axis, create the following script choreography for the rotate attribute:

    P.x *= 1000;

Scripting Constraints

The Constraint object introduces similar improvements as the above mentioned systems. It defines the following variables:
  • P - target attribute
  • Type - type of the target attribute
  • Target - target object the constraint is attached to
  • Time - current time
  • Self - the constraint object itself

For example, you can create a path animation by using a nurbs curve as a sub object for the constraint object and writing a script that evaluates the curve using the time parameter and moves the target objects accordingly.

Import / Export


Boujou

Boujou motion tracking import implemented.

User interface

There are two new items in the File menu, Import and Export, for easy importing and exporting. Loading files using these menus does not change the current project name. Only the File/Load and File/Save As operations change the project name.

The correct file extension (.r3d, .dxf etc.) is now used in the File dialog so that only the files with the specified extension are shown.

New File Format Plugins Included

The import / export plugins from Schmeling Consulting are now included in the Realsoft 3D package. The plugins support OBJ, PSD and DEM formats.

User Interface


Mouse Wheel

Realsoft 3D User Interface supports now mouse wheel. Windows can be scrolled with the mouse wheel. The wheel can be also used for panning windows (i.e. as the middle mouse button). Scrolling the mouse wheel in a view window moves the camera forward / backward. Painting-like modeling tools support mouse wheel for brush size definition.

Windows XP Thumbnails

Microsoft Windows XP operating system can now show thumbnail images for Realsoft 3D project files (.r3d) and Realsoft image files (.r3i), making it much easier to browse Realsoft 3D files.


Realsoft 3D thumbnails images in Explorer

German Localization

Realsoft 3D ships with two languages: English and German. Other languages will become available later.

3D Painting


Full UV Image Evaluation

The UVImage tool has a new evaluation option 'Surface Shading', which evaluates all surface related shaders.

This option can be used for collecting any part of the shading information. For example, the reflections can be evaluated and stored into a reflection map.

Another very useful channel is the illumination channel. For example, create a set of light sources with desired colors to shade your model and then convert the illumination to a standard texture map - 3D painting with light sources!

Modeling


Undo for All Layers

Undo implemented for all layers (not only for the geometry layer). Now both Undo and Redo work with the layer, which is selected in the Select window.

The maximum Undo depth for all layers is controlled through the Options window / General tab.

Delete All for All Libraries

Material, Post Effect, Channel etc. libraries on the select window have now a 'Delete All' menu for quick cleanup. The menu tool confirms deletion with a warning window before proceeding.

General Purge

The purge tool, which deletes library objects, which are not referred by other objects (i.e. objects not in use in the current project), is available in all layers. This feature is helpful for project cleanup purposes.

Delete Duplicates

This tool, available in the select window's popup menu, is useful for project management purposes. For example, when the user inserts materials or other objects from an old project, the loaded items may partially overlap with the existing ones. Delete All is an easy way to get rid of the extra copies, because it deletes the latest objects and preserves the ones created or loaded earlier.

Bounding Plane and Infinite options

Controls for bounding planes and infinite length added to all analytic primitives, such as planes, cylinders and cones.

Object Space Alignment

Some primitives, such as the NURBS curve, align their object space better to the geometry after creation.

Selection Painter

A new painting oriented selection method is now available for selecting points, edges and faces. The tool can be activated by hitting the Alt+Spacebar hot key. Selection happens simply by LMB-dragging a circular brush over the targets. The selection area can be adjusted easily with the mouse wheel. The tool also supports the standard selection modifiers: Alt removes from the current selection and Shift adds points to the current selection.


Selecting point handles by painting

Copying And Instancing with Ctlr and Alt Keys

Copying and instancing objects by Ctrl or Alt dragging the object space handles is now easier. Objects are now copied or instanced as soon as the transformation is started. The user can see both the original object and the new copy/instance at the same time.

Efficient Polygon Modeling

The triangle based Triset object has been developed further. Higher memory efficiency means that 3 times more polygons can be rendered with the same amount of RAM memory.

Triset now supports UV coordinates per face. Conversion between SDS and Triset object types is more accurate, meaning that the extensive SDS toolkit can be used for editing and texturing Triset models.

Triset related modeling algorithms have been optimized. Program's interactivity and performance with scenes, which include dense polygon objects, is an order of magnitude better.

Realsoft 3D can now handle much better polygonal objects imported from other applications.

Measure Curve Length

This tool for measuring the length of the selected nurbs curve.

Distribute Points

Places the points in the selected nurbs curve to equal distances.


The measuring and distribute tools in action: bump mapped NURBS curves by BT-Grafik

Images


Microsoft .ICO

Version 5 supports Microsoft's .ICO image format (24 bit color + 8 bit alpha). This means that Realsoft 3D can be easily used as an icon creation tool.

The Batchren utility introduces also some improvements for this purpose. A set of new startup parameters allow developers to use standard software development tools to build .ico files automatically from Realsoft 3D project files.


Example icons created using Realsoft 3D.

Channel Renaming

Realsoft 3D native image file format now allows channel renaming. The names of outputted channels can describe the purpose of the included data: 'Floor alpha', 'Diffuse illumination' etc.


An example of a deep image file format. The included channels can be renamed and their data type properties set to the optimal configuration.

Flexible Data Type Management

The Realsoft 3D native image (.r3i) and the Post Image objects have new controls for data channels. The user can now control the value range of integer type channels and select 'signed' value range (i.e. negative values accepted) for all data types. For example, the byte data type can store the surface normal because negative coordinate directions will not be truncated at zero. Thanks to the new options, memory consumption has decreased significantly.

For example, GI post processing requires typically only a half of the memory compared to the previous version 4.5.

Automatic Channel Management

The program now inserts automatically all missing channels, when the user loads materials or other objects, which refer to user defined channels. Previously unknown channels caused error messages in rendering; the usual way to recover was laborious channel insertion manually.

Image Viewing

The display area of the image object's property sheet has now a popup menu for easy selection of the visible channel. Also a menu for viewing the image in its actual unscaled size is available.

Image file browser's preview window now displays the image resolution in its title bar.


Microsoft .ICO image in ShowImg

Image Choreographs

Image objects now display the standard choreography management tools on the select window's popup menu.

Image Cache Management

The image cache has now new class attribute 'CleanupCounter'. This controls how long unused images are kept in memory. A high value may be useful for caching long animated backdrop image sequences, but usually increases memory consumption.

Backward Compatibility

Version 5 can read most v4.5 projects just fine. The following compability issues were reported during the beta testing program:

  • The new choreography system is based on the construction stack approach, where each choreography modifies the result of the previous choreography. In version 4.5, choreography order was irrelevant.
  • The Constraint object is not backward compatible.
  • VRML plug-in from Soft-Artist needs to be upgraded. Version 5 compatible VRML plugin is available in the Software Updates page at realsoft.com.