Path: news.uh.edu!barrett From: raist@rmece02.upr.clu.edu (Ricardo Hernandez Machado) Newsgroups: comp.sys.amiga.reviews Subject: REVIEW: Real 3D Version 2.0 (version 2.35) Followup-To: comp.sys.amiga.graphics Date: 29 Mar 1994 18:30:19 GMT Organization: The Amiga Online Review Column - ed. Daniel Barrett Lines: 564 Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Distribution: world Message-ID: <2n9s3r$rbl@masala.cc.uh.edu> Reply-To: raist@rmece02.upr.clu.edu (Ricardo Hernandez Machado) NNTP-Posting-Host: karazm.math.uh.edu Keywords: graphics, ray tracing, 3D modelling, animation, 24-bit, commercial Originator: barrett@karazm.math.uh.edu 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: raist@rmece02.upr.clu.edu 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: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu Moderator mail: amiga-reviews@math.uh.edu Anonymous ftp site: math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews