PerspectiveTransform for java2d ?

Hi,

Sometime ago, I’ve evaluated the advanced imaging API, and there was this nice PerspectiveTransform class (for example : transforms a rectangle into any tetragon).

Is there a mean to acheive the same results with java2d today ? (one of the usages i can think about is hardware-accelerated 3d texturing).

Thanks

Lilian

You should take a look at the Java2Demo by sun.

The demos.colors.Rotator3D is a nice example of Java2D perspective transformation for vectors.

Unfortunately, this is not what i’m looking for…

What I’m looking for is a transform that can be applied to images, like shear/scale/rotate , in order to have textured polygons painted with perspective correction.

That way, we could have small/casual 3d games (of big, depending on the performance of that perspective transform) written with java2d only.

Of course, this is not enough for high quality 3d (missing lighting and other fancy stuff) but it would be a good start…

Lilian

As the java2d transform is Affine, you can’t do perspective distortion with it.

Anyway you would find the AGG sources (http://www.antigrain.com/index.html) interesting for your purposes, if you’re comfortable with C++.
Be prepared to handle your pixels directly.

If you really need 3d at hardware speed, I would also suggest you to take a look at OpenGL (LWJGL, JOGL)…

Unfortunately, this is not what i’m looking for…

have a look at the javadoc of PerspectiveTransform : http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/PerspectiveTransform.html

This is not an affine transform, and it’s available as soon as your users have installed JAI…

To be more specific I was thinking of a kind of 3d applet revival, thanks to Java2D and that small subset of JAI. I’m well aware of current open gl bindings as I use them every day at work and at home, but for a casual gaming / product demonstrations perspective, I’d prefer to rely on java2d only (with hardware support the better)

anyone from Sun reading and wanting to comment ?
( trembovetski ? )