Hi Tiago!
I know that problem. It is discussed before in that newsgroup under the
title "SimpleUniverse vs VirtualUniverse". I had the same idea as you
had, that it would be a problem with the universe. But it isn't.
The problem is that you activated the View's compatibility mode. That is
to apply camera based options to the View model as you did (
setLeftProjection(t3d) ). But this is not the original intention of the
Java 3D View Model. The Java 3D View Model works different (see
PhysicalBody and PhysicalEnvironment).
Fact is, that the PickBehaviors don't work in compatibility mode. I just
wrote a dissertation about an application using that compatibility mode
(and the camera based model) and I used a frustum. I found no way to
make the pickbehaviors work. So I implemented a key control.
You'll find further information at
download.java.net/media/java3d/javadoc/1.4.0-latest/javax/media/j3d/doc-files/ViewModel.html
I would recommend read that do***ent. It can probably explain the things
better than I can at the moment ;)
hth
Thomas Partsch
tiago.cardoso schrieb:
> Hello,
>
> I made a simple app with a simpleUniverse. After testing it and using
> picking (worked fine).
>
> I decided to implement the real app. The real app has to be in Ortho
> projection and have tranformations on the viewbranch.
>
> So, I implemented the a class extending virtualuniverse. I did
> everything "by the book" I think and everything worked fine as for the
> visual aspect, object showed up in the right place and the view was
> right.
>
> Now, I'm trying to use pickcanvas but it doesn't work at all :(
> I've search a lot on the web and I already saw that there some kind of
> problem with the pickcanvas pickshape for the customized
> virtualuniverse.
> In fact, the PickShape orign point, direction and start point don't
> seem to make any sense at all.
> (my objects have about 100 of size and the camera is ver faraway, and
> the pickshape point is about (-0.07767107179733918,
> -0.2967893129673346, 0.4174332443807395) although it changes - though I
> don't understand how and why)
>
> My universe has only a Locale. A world branch where I have my objects
> and a view branch with my viewplataform and where I apply my
> tranformgroup to change the camera point of view.
> I use...
>
> projection2.ortho(0, _width, 0, _height, -BACK_CLIP_DISTANCE,
> BACK_CLIP_DISTANCE);
>
> Transform3D cameratransf= new Transform3D();
> this.getTransformGroup().getTransform(cameratransf);
> projection2.mul(cameratransf);
> view.setLeftProjection(projection2);
>
> ... to have a ortho projection.
>
> Any tips.. plz ?? :D
>
> Thanks!
>
> Tiago Cardoso
>


|