Another 3D Engine
português

Six Ways of Rendering a Cube

trabalho 1 trabalho 2 trabalho 3
trabalho 4   trabalho 5   trabalho 6


Requisites:
Java plugin, downloadable from http://www.java.com/.


About Another 3D Engine

3D engines can be found in any software (game or application) using 3D graphics. They are responsable for the rendering (exhibition at the screen) of these graphics, doing the drawing of polygons, the calculation of perspective and shading, and the texturing of objects. They also do the transformations (rotation, offset, scale) of objects, and many of they also do animations.

As main criteria, and goal, of 3d engine creators, we have the search of the highest possible level of realism at the images generated by the 3d engines. Even when we have scenes that are not, apparently, realists, what changes is the referencial of this realism. For example, several games have scenes where we have low gravity (where the referencial is, usually, the Moon surface) or zero gravity (sideral space), but, in these cases, it's easy to identify the referencial.

In searching this realism, the 3d engines use different kinds of algorithms. It is necessary to guarantee that closer polygons be drawed over polygons more distant (they do a calculation to set the order of drawing); the light and shading have to consider all the light sources available at each scene, as well the materials characteristics; if we have transparences, the 3d engine also needs to draw correctly the objects that will be visible through the transparent material. These, and others, are the things that programmers have to worry about.

Another 3d engine shows a set of modifications in the logic of a 3d engine. For that, we used a relatively simple 3d engine, developped in Java, Browser3D, distributed as open source software. We used the library Java2D to make these changes, that happen in the drawing of objects.

For the first work of Another 3d Engine, we looked for a scene that was the 3d equivalent of Hello World. Printing the message Hello World at the computer screen is the task of the first program that a beginner learns when studying any programming language; almost every book and tutorial about programming start with an exampled called Hello World. We choosed as the equivalent of Hello World the rendering of a cube. Not a normal cube, but a color cube, as the created at the first chapter of Getting Started with Java 3D, written by Sun's team (Java3D is one of the most powerful libraries for the rendering of tridimensional graphics available today).

Each one of images below links for a different version of Another 3d Engine; in eachone, the modifications I have done are different, in such a way you will see different ways of drawing a color cube, rotating around itself, at the computer screen.


December 2005
Andrei R. Thomaz
andreithomaz@gmail.com


References

3d Engines List
http://cg.cs.tu-berlin.de/~ki/engines.html
http://www.devmaster.net/engines/
Browser3D
http://www.geocities.com/SiliconValley/Horizon/6481/Browser3d.html
Java 3D
http://java.sun.com/products/java-media/3D/
Java
http://java.sun.com/