On 2/1/07, S Mattison <[EMAIL PROTECTED]> wrote:
> This might seem a haphazard or poorly thought out question, but it has
> been long begged by science fiction, and I'm very intrigued to hear
> answers from people who might know how it would be possible...
>
> Forget everything you know about the COD format.
>
> Say, I have a small online world, which looks something like a pyramid
> on top of a hill. Consider the center of the base of this pyramid as
> "The Origin Point". Say the extent of the square-shaped land area in
> my world ranges from the virtual X/Y values of +1 to -1. (I know
> nothing about the values of the current "pyramid" map, but follow me
> on a tangent here...)
>
> After that, say I allow avatars into my world, maybe they look like
> birds of some sort.
>
> Now... and this is where it gets tricky... Say I give them a command
> that allows them to 'fly', or, retain the same Z value, while they
> navigate across the X and Y axis...
>
> Would it be possible to allow my world to have near-infinite values
> for X and Y (At least, as high as modern floating-point variables go)?

Don't know about vos yet but there is a general theory answer to this.
For a space build on
"modern floating-point variables", Ignoring the earlier part about a
range from -1 to +1, there are some issues about floating point space
you need to understand.

It is not possible with the conventional navigation rules people
normally use: you will get
jittery motion, rendering artefacts and other problems the further you
go from the origin. Roughly speaking, things tend to vibrate a bit
around 1-2,000m out then shake a lot more around 40,000m and it gets
worse. Most ppl will tell you this sort of thing is due to limited
precision. Although that is true it has a lot more to do with spatial
resolution and spatial error.

To explain:
Firstly, around 1.0 the resolution of floating point (x,y,z) space is
very high: with the difference between one representable number and
the next being 2.2 x 10^-16. As you get to the radius of the earth
(about 6.4 x 10^6), the resolution is around 1m for single precision
floating point coordinates. So the resolution of the space is
nonuniform - see third slide in:
http://www.web3d.org/x3d-earth/workshop2006/contributions/PingInteractiveGeoSimFidelityScalability.pdf

The actual error between two coordinate values can be much much bigger
if there has been any calculation because the more calculation there
is the more the potential error increases - exponentially.

All is not lost tho - you could move the origin - and the hirez space
- with you:i.e. a floating origin. To do this, your navigation must
transform the world/objects in reverse while your avatar stays at the
origin. This partly answers what the server side does too: on the
server,
avatars are tracked through space (in double precision say) normally:
in origin-relative sense.

Floating the origin allows for smooth navigation in a continuous
single precision space out to a world size as large as the earth -
even larger. But viewpoints and navigation and some other things have
to be handled differently.

> Say; If two avatars float in an opposite direction for hours on end,
> for the span of eight, sixteen, thirty-two hours... How would the
> world need to be programmed so that, assuming they turn around 180 and
> float back, it would take them both exactly the same amount of time to
> get back to their original meeting place?

Well the problem is not turning em round and getting em back, they
will both fall over with bad case of jitters well b4 that :) Then, if
you solve that, the problem is how accurate your
rotation and navigation is. With careful management of calculation
error and precision - and
by using a floating origin - you can minimise the error but not
eliminate it entirely: computers are such inexact beasties. For this
specific example tho - reversing the direction vector should be
getting the avatars heading back in exactly the right direction: but
your navigation would have had to be always on exact same vector going
out.

>
> If Penguin A created his own land-mass 28 hours from the meeting
> point, how could I store it and retain the data in the server,
> assuming said Penguin is capable of finding this point again?

Define a spatial reference system: say cartesian x,y,z and time and
reference everything
to that grid on the server. You could use lat, lon, altitude and time,
then u have to convert
eventually to x,y,z - depends on what u want.

cheers,

chris
>
> -Steve
>
> _______________________________________________
> vos-d mailing list
> vos-d@interreality.org
> http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
>

_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to