For some reason, I wrote: > If the time between updates is less than the interpolation lag, the > interpolation code will fail and you'll get herky-jerky movement.
Sorry! That should be "if the time between updates is *greater* than the interpolation lag" -Ken > The > default lag is 250 in units of csTicks (which I believe are basically > milliseconds). You can set the interpolation lag globally with > iVosA3DL::SetInterpLag. Unfortunately, I didn't implement it as a per-object > thing, though that change wouldn't be too terrible to do. > > The other side of the issue is the maximum velocity setting, which has both > a global default *and* can be over-ridden on a per-object basis. The > functions for doing so are iVosA3DL::SetInterpMaxVel and > iVosObject3D::SetInterpMaxVel respectively. There's also a > iVosObject3D::SetUseMaxVel to enable or disable the "maximum velocity" limit > for interpolation on a particular object. Maximum velocity is in units of > "world units per csTick" and has a default setting of 0.03, which is based > on my own observations of how fast avatars walk and how much network jitter > there was. If you have anything moving faster than avatars, you will > probably have to give them a higher maximum velocity (or just turn it off). > > Setting the maximum velocity to "0" has special meaning. For objects, it > means "use the default maximum velocity." For the global default setting, it > means "by default, turn the maximum velocity limit off." > > Of course, you can also disable interpolation for an object entirely by > using iVosObject3D::SetInterpEnabled. And you can disable it globally using > iVosA3DL::SetInterpEnabled. > > The idea of putting maximum velocity or update frequency hints as Vobject > properties is something I thought about, but figured I'd defer to you guys > to actually make changes in the A3DL standard :) -- I think it's probably a > good idea though, at least for maximum velocity. > > BTW, there is no maximum velocity limitation for orientation updates. They > are currently always interpolated. Also, the global interpolation lag > applies to position, orientation, and action events equally. (Action events > aren't "interpolated," but simply delayed so they stay in sync with the > interpolated movement). > > -Ken > > ps: I didn't do too much testing with overriding the maximum velocity > settings, so be warned :) > > ----- Original Message ----- > From: "Reed Hedges" <[EMAIL PROTECTED]> > To: "VOS Discussion" <[email protected]> > Sent: Sunday, July 08, 2007 1:10 PM > Subject: [vos-d] Interpolation in TerAngreal > > > > > > I've been writing some code that makes some objects fly around and Ken's > > interpolation code makes it look nice and smooth. However, in doing so > > I experimented a bit with position update frequency, wondering what the > > slowest rate I could use is, especially when the velocity I was trying > > to show was constant. There's effectively a maximum speed that the > > interpolation achieves, so that if you update less than several times a > > second (e.g. once or twice a second), the object has a really jerky > > start-stop motion. > > > > Is there a quick fix for this? Or should we just let that issue be, and > > later add concepts of velocity and acceleration to A3DL? > > > > Would it be possible to add position-interpolation-speed and > > orientation-interpolation-speed properties to Object3D? Or > > position-update-freq-hint and orientation-update-freq-hint? These would > > be advisory parameters for the interpolation code, that would let it > > choose object velocity in the interpolation. I like the idea of > > update-freq-hint, because it's not implying anything other than what the > > server side is doing (updating the property periodically). However, the > > client side would always be one step behind, so it might make things > > look pretty glitchy. > > > > Thoughts? > > > > Reed > > > > > > > > > > > > _______________________________________________ > > vos-d mailing list > > [email protected] > > http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d > > > > > _______________________________________________ > vos-d mailing list > [email protected] > http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d > _______________________________________________ vos-d mailing list [email protected] http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
