By Jose Parrot
SOL3d is a solidus modeler and wire-frame renderer.
This package was developed to create wire-frame drawings for line plotter output.
It was used for some years, until I was hired by IBM and the package was abandoned.
But I think that the source code, and mainly the principles on which SOL is based, are very useful for students
and researchers that would like to learn a different approach for 3D rendering.
Sol is essentially a vector based application, in contrast to most of 3D packages, devoted to realistic (or almost) rendering engines, based on ray tracing. Sol doesn't produce images, but wire-frame drawings instead.
Another important point in SOL is the simple geometric calculation, based exclusively in right rectangles
properties, not using matrix calculation, as usual in computer graphics. Such approach results in very fast
The C pointers are used also for faster execution, contributing for high performance of SOL.
I decided to port the package to Windows, by using .NET environment to allow execution in Windows xp
and Vista computers. Some improvements were made, as GUI, although maintaining the C style for the math. This new version is under development, and the menus are in English to make it easy to all to participate.
The Windows version is all in English and includes executables.
The source code is entirely in Microsoft Visual C++ environment. The code mixes both C and CLR syntaxes, although both are compatible with the complier.
The porting strategy was (1) to maintain as much as possible the original code (as it is very stable) for the core math calculations and for file I/O and (2) to create entirely new code for the GUI, by using the VC IDE resources, at same time providing a good and compatible interface, which works perfectly in both Windows xp and Vista computers.
For that reason, it needs the .NET 2.0 (or newer) run time dlls.
As SOL was developed in Brazil, the original DOS code and menus are in Portuguese.
The complete package includes code for HPGL output (for line plotters), camera animation and some automatic tasks for animation. It is the foundation of the Windows version. SOL first version was written in MS C in DOS 6.3 environment, by using Borland's Pascal 3 graphics library.
The new 3ds2sol package is available at sourceforge to allow sol3d users to work with 3ds models.
It imports only the geometry (vectors, triangular mesh), skipping the others chunks.
Optional automatic or customized scaling and translations commands are available.
The package includes some few models for using with sol3d.
Version 0.9.3 added the following features
· Maximum number of points, lines and faces grow by an order of 10
· Default values set to avoid user mistakes
· By using 3ds2sol, another package in sourceforge, viewing of 3ds models
Version 0.9.2 added the following features
· Save modified or merged object files
· New polyhedron (under development)
Version 0.9.1 has the following features
· Read and merge polyhedron dat files
· Transform one or more objects
· Plot a perspective in the screen, with optional hidden line removal
There is no plan to port it to Linux, although the source files for DOS are easily portable to Linux, except the graphical output.
· In the present project, I think a version 2 jump is to abandon C style of file I/O and to refine precision, by using float variables for the coordinates..
· I plan to develop a
parallel version, with no graphics output, but capable of creating HPGL files,
thus allowing post printing drawings.
Such implementation will support really large arrays, large number of objects and fast execution.
· Frustum and level-of-detail for speed optimization.