This is Interesting: Free Magazines for Graphics designers and webmasters
Home > Archive > VRML > June 2005 > DeepMatrix libraries..
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
DeepMatrix libraries..
|
|
| Alessandro 2005-06-03, 7:36 pm |
| Sorry, for my English...:), and thank...
I have a problems on compiling source of applet of DeepMatrix tool (with
BlueJ and npcosmop211 of cosmo Client imported in BlueJ)...The Client that i
use is Cortona (i have to use this because is a project of University...).
What libraries i have to import for resolve the errors ?
Why i can't see the applet (with Microsoft JVM on
http://eureka.lucia.it/vrml/tutorial/eai/home.html?
)
Internet Explorer 6.x...
I see the world alone...
Thanks,
Alessandro
| |
|
| Hi Alessandro,
To begin with the "npcosmop211" archive does not
have all the necessary Browser methods. It is missing
beginUpdate() and endUpdate() which were
implemented in a later version of EAI I proposal.
Both Cortona and Contact use those methods, so you have to use their
EAI
packages in the classpath and not
Cosmo.
Deep Matrix does a browser check for those methods so Cosmoplayer will
work
anyway
Other hints to compiling Deep Matrix:
1. add -depreciate to command line.
2. You possibly might have to add a classpath pointing to a MS-JVM
package:
"C:\WINDOWS\JAVA\PACKAGES\DJR73JBD.ZIP"
Beware! On Windows 2000 M$ JVM this package has another name and I
don't
recall what it is off hand!
Finally I am continuing development of DM between these
two sites:
http://www.deepmatrix.org
and http://www.cyworx.com
both have developer forums. Feel free to join!
thanx
Russ Kinter
| |
| Alessandro 2005-06-14, 7:47 pm |
|
Dear Russ,
thank you for replying me. I compiled successfully the code. The problem was
a missing file in the program version I downloaded. The missing file was
muchat.jar. Now I have some other problems. One of these is the
incompatibility between sun jvm and deepmatrix. I followed deepmatrix's
guide indications (www.deepmatrix.org), I downloaded MS-JVM + Upgrade 3810,
but with this virtual machine I am not able to connect to deepmatrix
server(at 127.0.0.1). Have you got any idea for solving this problem? What
could be wrong?
I tried running some sample programs, some of then run correctly on sun jvm
and effectively connect to deepmatrix server while most of them cannot be
read by sun jvm: (java console shows the following message:
java.lang.NoClassDefFoundError:
vrml/external/exception/InvalidEventOutException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at matrix.deck.eai.Beta.init(Beta.java:72)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
)
but these same samples that sun jvm doesen't accept run correctly using
MS-JVM but the connection to the server is impossible.
Thank you for helping me.
Alessandro
"Russ" <Pyth7@comcast.net> ha scritto nel messaggio
news:1117951495.391446.293180@o13g2000cwo.googlegroups.com...
> Hi Alessandro,
>
> To begin with the "npcosmop211" archive does not
> have all the necessary Browser methods. It is missing
> beginUpdate() and endUpdate() which were
> implemented in a later version of EAI I proposal.
> Both Cortona and Contact use those methods, so you have to use their
> EAI
> packages in the classpath and not
> Cosmo.
>
> Deep Matrix does a browser check for those methods so Cosmoplayer will
> work
> anyway
>
> Other hints to compiling Deep Matrix:
> 1. add -depreciate to command line.
> 2. You possibly might have to add a classpath pointing to a MS-JVM
> package:
> "C:\WINDOWS\JAVA\PACKAGES\DJR73JBD.ZIP"
> Beware! On Windows 2000 M$ JVM this package has another name and I
> don't
> recall what it is off hand!
>
> Finally I am continuing development of DM between these
> two sites:
> http://www.deepmatrix.org
> and http://www.cyworx.com
> both have developer forums. Feel free to join!
>
> thanx
> Russ Kinter
>
| |
|
| hi Alessandro,
>but with this virtual machine I am not able to connect to deepmatrix
>server(at 127.0.0.1). Have you got any idea for solving this problem? What
>could be wrong?
Is the port parameter of the HTML set at the same number as the
server's?
(matrixrc file) - it's default at "6666"
Also, - I have to admit my networking jargon probably isn't what it
should be-
You are running/testing this entirely local? I know I have to shut off
my cable modem
to do that, otherwise the applet uses an other IP number.
If these fail, send me the exact error message.
One more thing, to be honest, I have not dealt with DeepMatrix version
1.2.2
very much, that's the http://www.deepmatrix.org/DeepMatrix122.zip
download at DeepMatrix.org.
It has a serverlet which I haven't dealt with and may be the source of
your problems.
All my work and improvements have been on the previous 1.2.1 version
applet
The 1.2.1 server and applet with info can be found at:
http://www.geometrek.com/products/download/index.html
You are welcome of course to use my applet (source code included)
http://www.deepmatrix.org/SET_Matrix1.zip
In regards to the Sun problems, please give me some more details on
what
you are trying to do.
tc
Russ
| |
| Alessandro 2005-06-17, 7:33 pm |
| Hi Russ,
Thank you for replying me... I solved the problems and realized my first
deepMatrix system :-)... At the beginning it was difficult to understand
how deepMatrix worked
( the main reason was the lack of documentation ) but with your help I could
realize it. Now I will organize a test on the square of the Udine3d.uniud.it
website just to see if
it supports an improved use.
I just wanted to ask you if you also had the following problem:
At logging in in the virtual work the avatars are collocated always at the 0
0 0 point. As these contain the collision node and are solids they "stick
together" but for realizing
the project I cannot deactivate this propriety.
I tried opening deepMatrix code but I think this problem is difficult to
solve directly inside the VRML because apparently there isn't any event sent
at the world at login time
( maybe I am wrong... I didn't analyze the code in detail so it would be
difficult to create a Javascript that at the starting of a new avatar
transpose it in a random position
inside the world, also because the avatar is created in runtime...)
I initially considered the idea of implementating a kind of function that
returns an SFVec3f compatible with the world...eventually cutting away
numbers involving collisions
between the avatars and with the surroundings. In particular I tought to
introduce in the Avatar class this function and recalling it at the moment
of the avatar creation.
Anyway the thing I wanted to know is if you had this problem and in this
case how you solved it or if you know someone who did. Otherwise I will have
to study the whole code.
Thank you!
Alessandro
"Russ" <Pyth7@comcast.net> ha scritto nel messaggio
news:1118869445.415241.48670@g49g2000cwa.googlegroups.com...
> hi Alessandro,
>
>
>
> Is the port parameter of the HTML set at the same number as the
> server's?
> (matrixrc file) - it's default at "6666"
> Also, - I have to admit my networking jargon probably isn't what it
> should be-
> You are running/testing this entirely local? I know I have to shut off
> my cable modem
> to do that, otherwise the applet uses an other IP number.
> If these fail, send me the exact error message.
>
> One more thing, to be honest, I have not dealt with DeepMatrix version
> 1.2.2
> very much, that's the http://www.deepmatrix.org/DeepMatrix122.zip
> download at DeepMatrix.org.
> It has a serverlet which I haven't dealt with and may be the source of
> your problems.
>
> All my work and improvements have been on the previous 1.2.1 version
> applet
> The 1.2.1 server and applet with info can be found at:
> http://www.geometrek.com/products/download/index.html
>
> You are welcome of course to use my applet (source code included)
> http://www.deepmatrix.org/SET_Matrix1.zip
>
> In regards to the Sun problems, please give me some more details on
> what
> you are trying to do.
>
> tc
> Russ
>
| |
|
| Hi Alessandro,
You wrote:
>I just wanted to ask you if you also had the following problem:
>At logging in in the virtual work the avatars are collocated always at the 0
>0 0 point. As these contain the collision node and are solids they "stick
>together" but for realizing
>the project I cannot deactivate this propriety.
There are two possible reasons for this.
1. It is not a collision problem at all, but rather the Avatars Proto
declarations are incorrect and they have thrown NullPointerExceptions
in their class.
This will definitely clump them together at 0 0 0.
Double check the code of your Avatar Protos.
If you are using my dm applet version, please check the
"readme", I have done changes to the Avatar declaration.
2. It really is a collision at the same Viewpoint position issue.
The problem you describe has not occured for any of the testing
I have done with others. I suspect it is simply a matter of luck. i.e.
Your users logged in at exactly the same time.
Are you using the original deep matrix applet 1.2.1 version or
my version?
I could see how the original version might be prone to that.
Here is the VRML loading sequence for the 1.2.1 original:
1. WorldObject
2. Everything else after that:
The UserAvatar and "Drone" Avatars
All these are loaded at once by emptying a
Vector containing containing a String [] Object with the
av url and the user's name
My version:
1. WorldObject
2. UserAvatar
If the UserAvatar has successfully loaded than its
url is distributed across the network. No sense in
exposing others to bad vrml.
3. "Drone" Avatars are loaded next so that the
Browser.createVRMLfromURL is not called
until the previous avatar is completely finished.
Simply put, my version gives users more time to move
out of the way.
Btw, the collision issue is not why I did this loading sequence change.
I did it because the old applet locked up Cosmoplayer
if the Vector contained more than eight users.
>I tried opening deepMatrix code but I think this problem is difficult to
>solve directly inside the VRML because apparently there isn't any event sent
>at the world at login time
>( maybe I am wrong... I didn't analyze the code in detail so it would be
>difficult to create a Javascript that at the starting of a new avatar
>transpose it in a random position
>inside the world, also because the avatar is created in runtime...)
>I initially considered the idea of implementating a kind of function that
>returns an SFVec3f compatible with the world...eventually cutting away
>numbers involving collisions
>between the avatars and with the surroundings. In particular I tought to
>introduce in the Avatar class this function and recalling it at the moment
>of the avatar creation.
If you do do create a random viewpoint, it should be done in the
WorldObject class. Doing this in the Avatar class would not reflect
the true location of the Avatar's owner.
When the WorldObject class is called first, It reads the scene graph
and looks for the first Grouping Node. Inside that Grouping Node,
it then looks for the ProximitySensor, Instances of Matrix Protos, and
bindable Nodes like Background, NavigationInfo, and Viewpoint.
It then binds the top instances of those Nodes.
For a very brief period of time at loading what you say is true.
All users are at position 0 0 0 until the top Viewpoint in the Grouping
Node is bound by the WorldObject class.
Admittedly, this would simply transfer the collision problem
from 0 0 0 to the newly bound Viewpoint.
Creating random position coordinates and orientation angle
in the WorldObject, inserting them into the top Viewpoint before it is
bound would be the best way to go.
Once this randomized Viewpoint is bound, then the user's location is
dispersed through out the network as usual.
This could be implemented as a new Matrix Proto.
An instance of this Proto in the Matrix Grouping Node would
simply contain the x, y, z axis parameters of how far in distance you
wanted to randomize the iewpoint.
( i.e. the x and y size of your plaza in Udine3d )
This new instance would have to be looked for by the WorldObject class
before it looks for Viewpoints.
The actual random calculations, I agree, would be better off
done with Java than through Javascript at load time.
Trying to combine the two, especially with Cortona,
is liable to fail.
So all the Proto instance would do is supply the parameters.
One more aspect of the problem has occured to me.
Cortona has a collision setting for "Always" Might this be
contributing to the problem?
Hope this helps.
tc
Russ
| |
|
| Hi Alessandro,
You wrote:
>I just wanted to ask you if you also had the following problem:
>At logging in in the virtual work the avatars are collocated always at the 0
>0 0 point. As these contain the collision node and are solids they "stick
>together" but for realizing
>the project I cannot deactivate this propriety.
There are two possible reasons for this.
1. It is not a collision problem at all.
Rather the Avatars Proto declarations are incorrect
and they have thrown NullPointerExceptions in their class.
This will definitely clump them together at 0 0 0.
Check for errors on the Java console and
double check the code of your Avatar Protos.
If you are using my dm applet version, please check the "readme",
I have done changes to the Avatar declaration.
2. It really is a collision at the same Viewpoint position issue.
The problem you describe has not occured for any of the testing I have
done with others.
I suspect it is simply a matter of luck.
i.e. Your users logged in at exactly the same time.
Are you using the original deep matrix applet 1.2.1 version or my
version?
I could see how the original version might be prone to that.
Here is the VRML loading sequence for the 1.2.1 original:
1. WorldObject
2. Everything else after that:
The UserAvatar and "Drone" Avatars
All these are loaded at once by emptying a Vector containing containing
a
String [] Object with the av url and the user's name
My version:
1. WorldObject
2. UserAvatar
If the UserAvatar has successfully loaded than its url is distributed
across the network. No sense in exposing others to bad vrml.
3. "Drone" Avatars are loaded next so that the
Browser.createVRMLfromURL
is not called until the previous avatar is completely finished.
Simply put, my version gives users more time to move out of the way.
Btw, the collision issue is not why I did this loading sequence change.
I did it because the old applet locked up Cosmoplayer if the Vector
contained more than eight users.
>I tried opening deepMatrix code but I think this problem is difficult to
>solve directly inside the VRML because apparently there isn't any event sent
>at the world at login time
>( maybe I am wrong... I didn't analyze the code in detail so it would be
>difficult to create a Javascript that at the starting of a new avatar
>transpose it in a random position
>inside the world, also because the avatar is created in runtime...)
>I initially considered the idea of implementating a kind of function that
>returns an SFVec3f compatible with the world...eventually cutting away
>numbers involving collisions
>between the avatars and with the surroundings. In particular I tought to
>introduce in the Avatar class this function and recalling it at the moment
>of the avatar creation.
If you do do create a random viewpoint, it should be done in the
WorldObject class.
Doing this in the Avatar class would not reflect the true location of
the Avatar's owner.
When the WorldObject class is called first, It reads the scene graph
and looks for the
first Grouping Node. Inside that Grouping Node, it then looks for the
ProximitySensor,
instances of Matrix Protos, and bindable Nodes like Background,
NavigationInfo, and Viewpoint.
It then binds the top instances of those Nodes.
For a very brief period of time at loading what you say is true.
All users are at position 0 0 0 until the top Viewpoint in the Grouping
Node
is bound by the WorldObject class. Admittedly, this would simply
transfer
the collision problem from 0 0 0 to the newly bound Viewpoint.
Creating random position coordinates and orientation angle in the
WorldObject,
inserting them into the top Viewpoint before it is bound would be the
best way to go.
Once this randomized Viewpoint is bound, then the user's location is
dispersed
through out the network as usual. This could be implemented as a new
Matrix Proto.
An instance of this Proto in the Matrix Grouping Node would simply
contain the x, y, z
axis parameters of how far in distance you wanted to randomize the
iewpoint.
( i.e. the x and y size of your plaza in Udine3d )
This new instance would have to be looked for by the WorldObject class
before it looks for Viewpoints.
The actual random calculations, I agree, would be better off done with
Java than through
Javascript at load time. Trying to combine the two, especially with
Cortona, is liable to fail.
So all the Proto instance would do is supply the parameters.
One more aspect of the problem has occured to me.
Cortona has a collision setting for "Always" Might this be contributing
to the problem?
Hope this helps.
tc Russ
|
|
|
| | Copyright 2003 - 2008 forum4designers.com Software forum Computer Hardware reviews |
|