Subject: REVIEW: Real 3D Version 2.0 (version 2.35)
From: [email-masked] (Ricardo Hernandez Machado)
Date: 29 Mar 1994 18:30:19 GMT
Newsgroups: comp.sys.amiga.reviews

PRODUCT NAME

	Real 3D Version 2.0 (version 2.35)

BRIEF DESCRIPTION

	Real 3D V2.0 is the newest Real 3D ray tracing and animation
program.  Among its fanciest features are: inverse kinematics, collision
detection, built-in Forth-like language, depth of field, motion blur, macro
recording, user-configurable interface, and multitasking with some of its own
functions.

	In this review, I would like to remind all those who read it that a
new version -- Real 3D Version 2.4 -- is already out and there have been
quite a few addition and changes.  I am waiting for that one to show up real
soon now ;-) in my mailbox.

AUTHOR/COMPANY INFORMATION

	Name:		RealSoft
	Address:	RealSoft Ky
			KP 9
			35700 Vilppula
			Finland

	In North America:

	Address:	Godfrey & Associates
			544 Queen Street
			Chatham, Ontario
			Canada N7M 2J6

	Telephone:	(519) 436-0988 (North America)
	FAX:		(519) 351-1334
	BBS:		(519) 436-0140

LIST PRICE

	$699 (US).  I bought it for $499 (US) in advance directly from the
company, although I have seen it for less than $400 (US).

SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	HARDWARE

		3 MB RAM required.
		5 MB hard disk space required.
		68020 or faster processor required, with FPU.

		My experience shows that you probably will need at least 10
		megs of RAM and a 68030 @ 25Mhz with a 25MHz FPU.  My system
		has 16 megs Fast RAM plus a 68030 @ 50Mhz with a 50Mhz 68882.

	SOFTWARE

		AmigaDOS 2.04 or higher required.

COPY PROTECTION

	Dongle (hardware device attached to an Amiga port).  It is not
pass-through.

	I rate their copy protection as acceptable.  People that use the GVP
G-lock, Brilliance, Scala or any other 'dongle' program might have to
manually switch dongles and connections. :-(

MACHINE USED FOR TESTING

	Amiga 1200
	CSA '12 Gauge accelerator 68030 @ 50Mhz with 50Mhz 68882 FPU
	16 Megs Fast RAM
	2 Meg Chip RAM
	200 Meg IDE hard disk

INSTALLATION

	Installation is easy.  RealSoft uses the Commodore's Installer
utility.  The only change is that users with '040 equipped Amigas will have
to rename two files.

REVIEW

	Real 3D V2 (called "Real 3D" from now on) is the latest incarnation
of the 'Real 3D' family of programs that boasts new features and
capabilities.  Real 3D relies heavily on CSG (constructive solid geometry)
objects.  These are 'primitives' like a sphere, cube, cone, ellipsoid,
polygon, pyramid, cylinder, etc.

	There are several advantages in using these primitives.  First, all
primitives use their 'highest resolution' whether you are close to them or
not in the virtual world.  Usually in other 3D programs, you have to
subdivide your object into a lot of polygons to achieve a smooth effect.  Not
so with Real 3D.

	Second, I have found that the Real 3D primitives are to '3D
construction' what Bezier curves are to 2D drawing.  If one had to model an
object with polygons like the primitives found in Real 3D, it would be a lot
of work.

	Third, the modeling screens get less cluttered.  I remember in
Imagine, if you load the 'ship' object, the computer is redrawing all the
polygon information for that object in wire frame.  Although this problem in
Imagine can be partially avoided, it is still more cumbersome than in Real
3D.

	Finally, since Real 3D supports boolean operations among primitives,
this almost ensures that with those primitives you can model 'almost
everything.'  Consider, for example, a crystal ball on top of a cone-shaped
crystal ball holder.  You could model the crystal ball holder by 'cutting
off' from the holder a sphere which is the same size as the crystal ball.
You will effectively have cut a spherical shape out of a cone-shaped
primitive.

	Real 3D also makes use of splines and spline meshes, which are lines
and three dimensional surfaces composed of 'Bezier type' curves like those
used in Professional Draw or Art Expression.  The advantage of using splines
is that all objects always look very detailed and curved, unlike in polygon
based programs like Imagine, Aladdin, etc.  The disadvantage is that splines
are really sloooooooooooooooooooow to render, although there are several
optimizations you can do for speeding those up.

PROGRAM MENUS

	The program has eight main menus with options that usually have
submenus:

	1. Project:  deals with saving, loading (inserting or replacing)
objects, materials, named colors, and 'environments.' Also deals with opening
different types of windows like the Tools, View and Select windows.

	2. Create:  allows you to create any primitive that Real 3D
supports, splines, spline meshes, compound objects (objects that are
created from primitives), freeform (objects built from spline curves),
tree and terrain type fractals, and boolean operations.

	3. Modify:  provides for object modification.  Real 3D classifies
the different modifications you can do in categories such as linear
modifications, structure, properties (color, names, size, velocity, etc.),
non-linear (used for altering freeforms), freeforms (also used for altering
freeforms) and others.

	4. View:  selects type of view (perspective or parallel), switches
left, front and above views, has an option for creating a camera, grid
options, bounding boxes for rendering, zoom options.

	5. Animate:  has shortcuts for creating some animations.  Usually
animations have to be created by creating a level, and setting the target
objects and the parameters.  This menu allows for setting automatically all
these structures for some common animation types.  Also has some animation
VCR-like controls like go forward, go backwards, jump to a specific frame,
etc.

	6. Extras:  accesses the vector calculator, undo, statistics (more
like an 'about' option), etc.

	7. Settings:  general preferences like the different paths where to
find the objects, materials, etc., levels of undo, default primitive object
attributes and other things.

	8. Tools:  displaying specific types of tools in the tools window,
and creation of user defined buttons with text that also appear on the tools
window.

PROGRAM WINDOWS

	When you start Real 3D, unless you started from one of the
predefined environments, it will boot up in a hi-res non-interlaced
(640x200) screen.  By default it opens three windows:  a view window, a
select window and a tools window.

	Each type of window serves a different purpose.  For example, the
view window is where you manipulate and view the objects and your scene.
The select window is where you select objects to be manipulated and where
you can 'walk' through the object hierarchy.  Finally the tools window has
icons that you can click on for object operations (like move, stretch,
etc.), color, name, create primitives, lights, etc.

	The 'world' in Real 3D is organized hierarchically.  This is very
similar to a computer science 'tree structure.' For example, when you start
the program you are at a 'level.' All objects that you create are at this
same level.  You can also create other levels and objects 'beneath them.'

	For example, let's say that we are creating a scene where we have a
single three-leg table in our 'universe.' We have the following hierarchy:

	level--Table--Table_Top
			  --Table_Legs----Leg_1
					    ----Leg_2
					    ----Leg_3

	We see that we got three different levels: level (the root level),
Table and Table_Legs.  Table_Top and Leg_1, Leg_2, Leg_3 are actual
geometric objects.  In Real 3D, the levels are objects too.  This means that
if for example, we wanted to move, stretch or rotate the table, we select
the table level and do the proper operation.  The operation is applied to
all the objects and levels underneath the Table level.  This means that we
can duplicate or delete the Table level effectively creating another table
or deleting the whole table altogether.

	You can enter, exit, and 'walk through' the whole hierarchy by double
clicking on the levels on the select window.  You can also render the
hierarchy from a current level and downwards in the current view window
using a 'render hierarchy' option.

	The hierarchy concept is also important when applying material
properties.  Material properties affect all objects at the current level, and
if these objects are levels, the effect carries further down those levels.
For example, if we wanted to put a metal textures on the legs and a wood
texture on the table top, we need to create another level and put the table
top underneath it.  At the same level of the table top, we create a wood
texture.  If we just created the wood texture at the same level of the
Table_Legs level and Table_Top object, the Table_Top would look wooden but
the legs will also look wooden.  If we created a metal type texture at the
legs level, then both textures (wood and metal) will be mixed!

MATERIALS

	Materials in Real 3D are also considered objects.  This means that
they can be manipulated in most cases like any other three dimensional
object.  Materials can be morphed, moved, animated, etc.

	The Materials have the normal 'classic' attributes like color, bump
mapping, brilliance (also known as reflection) mapping, transparency
mapping, specularity control, refraction, roughness, dither, bump height and
others.  The more unusual attributes include effect (like the effect of this
material on the object), clip mapping (makes parts it touches visible and
other parts invisible), scope mapping (makes the materials affect the region
covered by the material only), spline mapping (maps along the surface of a
spline mesh), and others.

	There is provision for procedural textures, although a bit limited
in this version (version 2.35).  It's actually not limited in the sense that
they are programmable in RPL (Real 3D Procedural Language), and there are
some presets, but it's harder and slower than say, Imagine.  The 'procedural
settings' are mapping, scope, bump, color and the index (when applying a
sequence of bitmaps, as in mapping a TV screen sequence animation).

ANIMATION

	Real 3D has twenty-two different animation methods.  This methods
can be combined with others hierarchically to make very complex animations.
The most notable (or say, those that impressed me the most) are:  direction,
inverse kinematics, radial forces, directed forces, tangent forces,
collision (there are two types), friction and creation.

	Direction is just the typical 'path' type method of animation with
the notable exception that it rotates the objects it affects along that
path.  There is a very good example of this in one of the tutorials of the
book where they make a swimming fish.  Its body bends along the path.

	With inverse kinematics you can make some skeleton type object
animations look a bit more realistic without a lot of work.  Consider for
example, the arm of a human person that is bent and has to reach out for the
light switch on the wall to turn the lights off.  With Real 3D, all you do is
use the inverse kinematics method and say that the index finger of the hand
has to travel to reach the switch.  When you animate, Real 3D calculates
automatically the way the arm stretches to read out and turn the lights
off.  Even if the finger has to stretch out, it will do it.

	The radial, directed and tangent forces mean what they sound like:
very useful for simulating molecule attraction/repulsions, satellites in
orbit around a planet (radial); gravity, wind (directed); and centrifugal
forces (tangent).  There are different variations of these animation
methods; so for example, you can write a formula in RPL that attracts
objects, but if they get too close, repels them.  You can simulate 'stormy'
wind by either writing an RPL formula or drawing a 'crazy' curve as a
parameter for the directed force method.

	Collisions can be used for simulating real-world Newtonian physics
collision phenomena.  Momentum is conserved, and there are some parameters
like the friction and elasticity of the collision, so colliding objects can
totally rebound or stick to one another or spin when colliding.

	Finally, collisions can also be used whenever you need objects to
bounce, or 'take into account' other objects when moving: for example,
dropping a ball down a curved tube.  There is an example in the manual where
this is done, and it works quite well.  Sometimes though, if objects are
small and are travelling too fast, they can 'pass through' the other
objects.  To avoid this, you can either make the objects a bit thicker if
they are too thin, or you can alter the 'sampling' accuracy of Real 3D for
collision calculation.  This however makes Real 3D slower.  I have found
that the collision works quite reasonable by just increasing the accuracy
one 'scale' up.

	The friction animation method helps simulate real-world friction
phenomena, such as a falling object in the wind.  By default, the program
takes into consideration the mass, size and speed of the object in order to
calculate the magnitude of the opposing force for the moving object(s).  If
an object is bigger, friction affects it more, and same with the speed.  If
the object is heavier, it is affected less.  Speed, by default, has the
biggest influence on the objects final speed (sounds recursive ;-) ).

	Creation is, in my opinion, one of the 'weirdest' animation methods
but very powerful.  It can create new objects during an animation,
controlling the process of 'birth and death' of the objects.  The copies it
makes are inserted on the same hierarchy level with the method itself, so
that they will be subject to the method.  For example, you can create a
sphere that follows a path, leaving copies of itself behind.  Since Real 3D
has a strong hierarchical concept of the property of objects, you can even
leave copies of the sphere on the previous example that have all the
properties of the original sphere including possible animation motions.

	The generated objects have a configurable 'life', so when objects
are created, then can be made to 'live' for a certain amount of time and
then 'die' or disappear.  The is a very good example of this in the book
where boiling water is simulated: bubbles start appearing at the bottom,
then more and more, and when they reach the top of the water they disappear.

	There are other methods of animation like the typical path,
rotation, stretch, size and a few others.  Since in Real 3D animation
methods are also objects themselves, they can be affected by other animation
methods too.

DOCUMENTATION

	The documentation comes in the form of a big manual and a README
file on disk.  Also, there's extensive AmigaGuide online help for particular
areas like materials and animation.

	The manual is quite helpful with its tutorials, and is relevant to
both the beginner and the power user.  There are some things, however, that
could be better explained, like scoping in the materials (making the
materials affect a particular part of a 3D object).  I would like to see a
new manual section full of hints and tips.

	Overall, the documentation gets an 8 out of 10, which is not bad.

LIKES AND DISLIKES

	Among the things that I like the most are the rich set of 3D
primitives and boolean operations.  You can make quite complex objects made
of just primitives, and these primitives are both fast (relatively speaking)
and very good for modeling.

	The animation system with its inverse kinematics and collision
detection is also a part of Real 3D that I like, since you can make quite
interesting animations that way.

	Finally, I like the extensive Real 3D procedural language support,
since it is very good for scripted animations, and offers a lot of control
over the real 3D environment.

	I disliked some parts of the animation system, particularly where
key framing and keeping track of 'time' is concerned.  Time is always from 0
to 1, so if you want to make (say) a car bump with another in 5 seconds,
you'll have to calculate from the total length of the animation when will
that happen, by dividing 5/(total time) in seconds.

	Among the other things I didn't like much was the very sloooow
rendering of spline meshes (although understandable), and lack of spotlights
(added in the new 2.4 version).  There are also a couple of bugs associated
with fractal trees and landscapes, where the machine can crash easily
generating a complex fractal.

	I would like Real 3D to be faster, more memory efficient, have more
built-in procedural materials, key framing and spotlights (added in the
newest release).

COMPARISON TO OTHER SIMILAR PRODUCTS

	I have some experience with Imagine 2.0, so a comparison is
inevitable ;-).  Basically, Imagine's strongest points are that it provides
key framing, spotlights, lots of procedural textures and mathematical
animation transformations.

	Key frames are part of Imagine, where it has a 'cycle' editor just
to edit animations of individual objects that will have a certain animated
structure.  In this category you can add things like a walking human, robot,
animal, etc.

	Spotlights are native to Imagine, so if you want a 'cylindrical
light' or 'cone light', you can just make one specifying how long it will be
and the radius of the circle if it hits a surface at a certain default
distance.  In Real 3D, you will have to put a light source inside a cone or
cylinder, and render with the maximum quality (the slowest one) to achieve
the same effect.  It's simply unnecessarily harder, but fortunately this
feature be in the upcoming version 2.4 which should be out by the time you
read this.

	Procedural textures, like I said before, are more limited in variety
in Real 3D, and to make them requires a lot of knowledge.  Imagine comes with
a decent variety of high quality procedural textures, but to make one
requires even a greater knowledge -- C programming and Imagine interfacing, I
suppose.

	Finally Imagine has a couple of animation mathematical
transformations that manipulate the polygons of objects.  The most useful
are fireworks and explosions.  This means that you can have an object just
suddenly explode in a bunch of polygons quite easily, whereas in Real 3D you
will probably need to construct a complex object and then make a collision
type animation to make an exploding object.  In Real 3D, while being slower
to create and render, it will be more flexible and accurate, however.

BUGS

	Like I said before, Real 3D version 2.35 has some bugs, particularly
in the fractal generator for trees and mesh spline landscapes.  Also when
zooming in, sometimes changing views makes the objects appear like a thin
line -- and in three situations caused my machine to crash.  This last bug,
however, is not very common.

	Real 3D's creators are very committed to making Real 3D a successful
product.  Since its introduction, there have been at least 3 free upgrades,
and there's a major upgrade that should be around by the time you read this:
version 2.4.

VENDOR SUPPORT

	I contacted Godfrey and Associates for the purchase of Real 3D by
phone, and later I sent to them a money order.  I have had no problems with
them, and they seem very helpful.

	I am not associated with them in any respect except as a customer.

WARRANTY

	Typical 30 day disk warranty (disks replaced by new ones if they are
bad).  I don't know if the warranty applies only to the original purchaser.

CONCLUSIONS

	I love Real 3D.  It is quite a departure from typical 3D type
programs, but it is quite powerful once you grasp its basic concepts.  I
love its constructive solid geometry primitives, as it allows you to create
complex models easily and quickly and not take years to draw in wire
frame. ;-)

	On a scale of 1 to 10, I give Real 3D a 9.  Its RPL language support
provides for a lot of flexibility as its collision animation system.  There
are things that I would like to see, but most of those things will be in the
upcoming V 2.4 (2.47?) version, so I won't complain that much. ;-)

REAL 3D REVIEW PICTURES DESCRIPTION:

	Thanks to Dan Barrett and his awesome BLAZEMONGER company, there
will be a couple of Real 3D JPEG format images that I have made that will be
ftp downloadable as a supplement to this review.  Some of those JPEG images
have been made just for this review, while others have been made just for fun
while I have been learning this program.

	[MODERATOR'S NOTE:  These images are located on our ftp site,
	math.uh.edu, in the directory

		/pub/Amiga/comp.sys.amiga.reviews/software/graphics/raist

	When downloading these pictures, make sure to set your ftp connection
	to BINARY mode by typing "bin" at the "ftp>" prompt.

	- Dan]

The images are:

1. cowboy.jpg - a spline object generated with Real 3D.  This object is not
one that I made - comes with the program.  Check out how smooth it is,
although I know it is all gray.  The banding in the shading could be due to
the fact that I didn't use any dithering and the intensity of the brightness
I set.

2. glass.jpg - shows glasses and mirrors in Real 3D.  The 'glass pyramid
primitive' is actually a pyramid primitive composed with a glass-like
material applied to it.

3. lamp.jpg - a room and a lamp I made.  The texture is a 24-bit Epson
scanned Philippines postcard.  Please note the smooth shadow of the texture
and the mirror-like surface of the lamp.  The lamp cone was made with a
bumpmap.

4. mandm.jpg - M&M's (TM) candy in a 3D world. ;-)  Please note the depth of
field Real 3D feature - the M&M (TM) in the center are focused, and those in
the background are a bit out of focus.

5. poolcoll.jpg - a collision detection type animation showing balls
colliding in a pool table.  Actually just four frames from that animation
labeled in the upper left corner.  The white ball was thrown with a bit of
motion blur at the others, and Real 3D calculated the other motions.  I would
like to point out that those frames where originally generated in Real 3D
windows in HAM8, and that the quality can be far better when you render
first to iff 24-bit files and then convert that to HAM8.  This is because
the version 2.35 of Real 3D doesn't calculate the HAM8 base colors very
well, but this will be enhanced in the next upgrade.

6. r3di1.jpg - interface of Real 3D in a HAM8 screen showing the M&M's
(TM) project to make the mandm.jpg picture.

7. r3di2.jpg - interface of Real 3D in a HAM8 screen showing the M&M's
(TM) project object hierarchy in a window that Real 3D can render for
you.

8. r3di3.jpg - interface of Real 3D in a HAM8 screen showing the
material creation/modification window.

9. r3di4.jpg - interface of Real 3D in a HAM8 screen showing the
rendering settings window.

10. r3di5.jpg - animation interface screen of Real 3D.

11. redglass.jpg - a red glass in a checkered floor with a light source in
the left part of the screen.  Note how the light color changes when it goes
through the glass.

12. seatest.jpg - one of my failed ;-) attempts at doing a sunset in the
sea.  I have to improve it because it looks too mathematical but having
seagulls silhouettes over the sun and a sailboat in the horizon must surely
help - and I didn't make them. :-(

13. thecity.jpg - a city I was building in Real 3D.  To the left part you
can see a 'billboard' that needs a bit of detail to get more similar to an
actual billboard.  I hope you like the buildings.... ;-)

	Please remember that all the above pictures were JPEG compressed;
thus, they could lose a bit of quality even with JPEG at 100% quality (I
noticed that it happened with the redglass.jpg).  Some images my need more
brightness.

LAST NOTE FROM ME ;-)

	As I would like to improve, I welcome any comments about my review
and particularly the images I have made.  You can send me e-mail at:
[email-masked]

COPYRIGHT NOTICE

	Copyright 1994 Ricardo Hernandez Machado (aka Raist).  All rights
reserved.  This review is freely distributable as long as it is reproduced
entirely and with the copyright notice.  If the review is going to be
distributed, the images are not required to be distributed, but I strongly
advise distributing them since they form part of the review.  The images
with the copyright notice in them are freely distributable as long as they
are not altered, although they can be scaled for printing purposes and
compressed for distributing purposes.

---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	[email-masked]
   Request information:	[email-masked]
   Moderator mail:	[email-masked]
   Anonymous ftp site:  math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews