Thanks
Re: native Java...
The latest JVMs effectively do already compile critical code sections into native machine code anyway. Non-coders often assume that Java must be slower but imagine the situation where someone decides to distribute their C++ programs as source code, bundled with a clever tool that makes the source code native at the point of execution (i.e. a "compiler"
) So, 5 years ago, Java was mostly interpreted but now it's mostly compiled. Big advantage here that the JVM is platform-specific, can detect the instruction set of the host CPU and can optimise the code specifically for the platform it's running on. Obviously it means a Java program takes a bit longer to "warm up" but who cares when your render is going to take 24 hours?
A few months ago, I tried out a couple of native Java compilers (i.e. they produced a .EXE from Java source) and the "huge performance gains" I got were in the order of 1-2%
At the end of the day, all a renderer is doing is throwing floating point instructions at the FPU, and there's no reason why Java shouldn't, now or in the very near future, be able to do that as quickly as C++.
Re: file format...
Radium uses a proprietary text scene file format, which (as far as I can tell) is Turing-complete ... it supports fully-typed variables (double, vector, image, material, shape, map etc.), if-then-else, while loops, do-while loops, for loops, recursive functions and the renderer supports primitives other than meshes (sphere, plane, square, cone, cylinder, torus) and full CSG operations (merge, subtract, clip, intersect, union). It's similar to POV-ray's SDL in terms of it being a programming language. It lacks arrays but the functions are much more powerful than POV's.
Like POV-ray, any mesh or primitive can be arbitrarily scaled, rotated or translated and meshes can also be instanced to save that precious memory. Shape-space <-> World-space transformation is built into the core (via ray transformations).
The only exporter implemented at the moment is (predictably) Blender but it seems fairly problem-free now. I use Blender to swing various other file formats (.3ds, .obj, .kmz) without too many problems.
I'm rambling now (although this is off-topic
)
Ian.