|
What's Raja?
|
Raja stands for "Ray-Tracer in Java".
The Raja project intends to build a complete modern
Ray-Tracer using the Java langage. The whole source code is under
LGPL and
GPL terms.
Up to date information about the project can be obtained at the
SourceForge Project Page.
- We have now completed :
- Color mixing, Shading,
- Exact correction of the acne effect,
- Spheres, Planes, Cylinders, Cones,
- Union, Intersection, Complement,
- Reflection, Advanced Refraction (Maxwell laws),
- Basic Parsing (temporary version, waiting for XML format),
- Modular rendering architecture,
- Naive supersampling, Diadic sampling,
- GNU style command line user interface (using java getopt),
- Basic graphical user interface.
- We are currently coding (version 0.4.0) :
- Documentation :
- API Documentation,
- User Manual,
- Developer Manual.
We have already planned a quite complete
list of features to add in Raja. Feel free to
email us any comments, suggestions, and even pieces of code
to include in Raja!
Why in Java?
|
Most of the people who discover the Raja project ask us the same
question : Why did you use Java?
Well, we could say that Java is one of the better language in
the object oriented family, that his API is probably one of the
best, that it's running on many OS, ...
But you probably reply that Java is really, toooooooo slooooow
to code a such "chip burning"'s application.
Actually, this is fairly an accident. In the very first time, we
had to do a course on objects programming in Java. We choosed,
as a guideline, to code a ray-tracer while the course. So, we
immediately start to investigate the difficulty of coding a
such application.
First at all, we were stunned by the facility of coding the
shading primitives on sphere and the adequation of the object
oriented way of coding. And we began to look after some extra
documentation.
Then we were trapped. :-)
As we started to build a student project, we never tried to
aim the better perfs, but a clean code and smart concept.
This "way of coding" is still here (we hope so) and we'll try
in the future to add all the most common functions of modern
ray-tracers to Raja and (maybe) some new one.
|