By Jose Parrot
SOL3d is a solidus
modeler and wire-frame renderer.
Contents
Introduction
Windows Version
DOS version
Features
Linux
Future enhancements
Introduction
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
perspective
calculation.
The C pointers are
used also for faster execution, contributing for high performance of SOL.
Windows version
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.
DOS version
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.
3ds importer
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.
Sol models
The package includes
some few models for using with sol3d.
Features
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
Linux
There is no plan to
port it to Linux, although the source files for DOS are easily portable to
Linux, except the graphical output.
Future enhancements
· 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.