I was thinking of building a 3D engine on my own several years ago.
The engine is hopfully be a modern one, i.e. it should contains at least
the following features:
(*) means planned feature, that is it will be done when it's done.
I work on for about half a year's time and use Java as the development language. I used Java just because I want to have instant Internet support. However, to tradeoff the performance factor - (this is arguable, but at least the garbage collection process would be a disturbance during program execution, not to mention the byte code translation problem, yes I know there is something called JIT), I must look for a thin layer of interface between JVM & the hardware. The primary reason is that 3D graphics is highly performance driven. However in view of the rapid increase in performance of 3D accelerator card these years, I believed that most of the rendering job can be ported to the display card, for example the current generation of hardware T&L card like Geforce3 or Radeon 8500.
To render the 3D graphics on screen, I use Magician, which is not further supported now. I don't use Java3D because 1) it acts more closely with Open Inventor, and thus not suitable for achieving special effects, 2) it seems that Java3D is not that good - just personal bias, sorry.
Below is several screenshots that I take with the current build of the engine.
This is a snapshot showing the lightmap support. The testing platform is PIII-1GHz with Geforce 3, the frame rate is about 60 FPS. I've also tested on my home machine, which is AMD K7-1GHz with GeForce 2, the frame rate also similar. The image on the wall is calibration image I used.
This is another testing image. The image on the wall is my home brew
Budgie baby. The image on the box with red color is the procedural texture
support I write, this simulate the fire effect. I hve also written the
support for clouds.
This image is a snapshot of a typical home. The furniture shown clearly indicate a made-in-HongKong feel-- note how outstanding it is the altar. However the engine still has many bugs cropping out when I try to render this environment. Also the frame rate drop to a shame rate of around 30 FPS. Also the lightmap is a bit wrong here.
As usual, the job has been suspended due to various reasons. Now what
I can do is to try to polish up the code if I got time. If you are really
interested, you may drop me an e-mail so that I can send you a copy once
the code is ready.