>----- Original Message -----
>From: =?iso-8859-1?Q?St=E5le?= Pedersen
><[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>Sent: Tue, 12 Mar 2002 13:15:17
>
>After working with javax.vecmath.* for some time now, i have encountered
>some nice features and some functionality that should be implemented.
>
>Matrix vector multiplication is missing (i cant find it), this should
>definitely be there.

The Matrix?? classes have transform()s for corresponding Tuples, Points and Vectors.  If you need more (or different?) GMatrix and GVector have a lot of useful stuff.

>Quaternion vector multiplication is also missing, this isnt very crucial
>(you could create a quaternion with 0 as the last param easily), but its
>much more handy to just use a vector. - and less overhead :)

You get the Quat4d.mul(Quat4d), and you can compose the vector spherical transformation from that.  I suppose that your talking about Q V Q*? 

>The quaternion objects are normalized when created with:
>float params and Tuple params. Though there is a mathematically reason
>to do this, it creates confusion when normalizing quaternion but not
>matrixes and vectors. Anyways, it should be mentioned in the javadoc.

This is one of those little nasty surprises that seem to be rites of passage working with vecmath.  It's kind of like hazing.  Welcome to the club.

>With quaternion vector multiplication implemented the need of removing
>normalizing when creating a object will parially remove this problem,
>since this often happen when multiplying two quaternions when one is
>actually a vector. Other very useful methods like rotate a point with
>a quaternion is also missing.

It might be nice to have the spherical  quaternion transformation, but broad interest in that corner of modeling is some time off.

>In that respect i have written some classes that extends the existing
>javax.vecmath.* classes. The classes are included as attachment.

I'll take a look at it as soon as I can get my de-tarrer working.  I have a dual number package simmering away that I'll publish some day.  If there's any interest in it at all, I hurry.  It's built on top of vecmath e.g. it uses a Vector3d and a double for quaternion, so if vecmath ever gets accelerated, this math should go along.  It includes dual numbers, dual vectors, and dual quaternions - all magical

>I hope that the j3d team could implement at least matrix/vector,
>quaternion/vector multiplication and rotation of a point with quaternion
>since this generally is very important when dealing with rotations,
>forces etc.  (in my case a rigid body library :) and that you would reconsider your decision of
>normalizing quaternions.

I think that it will come eventually, but there'll be not much interest in it in the near future.  My own take on the way it might happen is this:  The drive for more plausible-looking games will result in more and more content being generated by physics simulations.  I suspect that here is where the quaternion camel pokes his nose under the tent.  Spherical quaternion transformations have been embraced wholeheartedly by the gamers to do rotational interpolations, and some day some of the dual quaternion-based inverse kinematics solvers might be similarly embraced.  At some point, the thrashing between the state equations of the physics model and the matrix transformations of the display model will become intolerable, and both spherical and spatial quaternion transformations will start to take some of the load.  

Some day, those transformations might move onto hardware.  All of the registers in nVidia GeForce VIII might be dual quaternion registers and the spatial transformation would be done in two clock ticks once the pipeline got loaded.

When that happens, the software and the object models have to change, and Java 3D 3.4beta3 will be ready.

Or maybe not.

Cheers,

Fred Klingener
Brock Engineering

Reply via email to