On Sat, May 05, 2007 at 02:04:01PM -0700, Ken Taylor wrote: > Wait... unless the purpose of "rot" *was* to caputre and restore the > previous position, and force all position updates to go through the > setPosition/notifyPropertyChange mechanism.... in that case, the main > problem is you can't guarantee that the property change will trigger a > syncPosition that executes *before* syncView reads the new position. So what > was happening is syncView had the latest position, but the mesh hadn't been > moved there yet, so the avatar lagged behind in some frames causing the > jerky movement.
Pretty much, yes. To be perfectly honest, avatar control in ter'angreal is kind of a hack. > I think immediately moving the mesh upon a local move command isn't such a > bad idea, but the fact that an asynchronous property update gets triggered > and executed at some time in the future, which *also* moves the mesh, is a > bit troubling to me. This is also concerning me because it impacts my > interpolation code -- what happens if you do a local moveTo on an object > that also can be moved remotely? When do you interpolate and when do you > update immediately? Any thoughts on what the Right Way to implement this > would be? I'm not sure... As you note, it's tricky because you have both local movement commits and the possibility that it can be changed remotely, and that change should stick. It's kind of a race condition, actually, which is why it's hard. The Right Way is probably to fix the semantics of property updates to handle this better, but that's more of something to consider for s5... -- [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ]
signature.asc
Description: Digital signature
_______________________________________________ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d