[sldev] Re: Why does the simulator do object culling for clients?
Douglas Soo
doug at lindenlab.com
Wed Jul 18 10:10:48 PDT 2007
The ObjectKill message is a message that is sent when your agent on the
simulator has decided to unsubscribe to an object on the simulator. The
primary reason why it needs to be send is that once your agent on the
simulator isn't paying attention to objects, it won't send further updates
to the viewer, which will cause lots of interesting artifacts in the case
of objects that change when you aren't subscribed. In particular, moving
objects can cause quite a headache (ghosting, etc.) - so the correct
behavior is to cull the object from the viewer completely.
The logic that decides to subscribe and unsubscribe to objects is done
based on groupings of objects based on type, size, and location in the
region. Right now subscription and unsubscription is done based on a
circular keyhole layout, with a bit of hysteresis to reduce subscription
thrashing. If you turn down your bandwidth and teleport to a new region
(or clear your caches), you should see this effect pretty well.
- Doug
--On Wednesday, July 18, 2007 11:11 AM -0500 Argent Stonecutter
<secret.argent at gmail.com> wrote:
> Dale Glass:
>> On Wed, Jul 18, 2007 at 03:54:42AM -0700, John Hurliman wrote:
>>> As you move around in a simulator, the sim is constantly sending
>>> ObjectUpdate* packets for objects that become within range or have
>>> moved, and it sends ObjectKill packets for things that go outside of
>>> your vision. Then when you move back to that area it sends the
>>> ObjectUpdate* packets for those objects again. Is there a reason this
>>> culling is done across the network by sending ObjectKill packets for
>>> things that are not actually leaving the simulator?
>
>> Suppose the sim didn't do that. In that case, the viewer would never
>> know when the sim decided the object is too far away. So you'd need to
>> have the viewer perform its own culling, or you'd have extra objects
>> hanging around.
>
> Why does the sim need to decide which objects are near enough to notify
> you about their existence? The range is determined by the viewer and
> changed by the viewer, and the viewer is performing its own culling
> anyway as it runs level-of-detail calculations.
>
> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
> /index.html
--
Douglas Soo
Studio Director
Linden Lab San Francisco
doug at lindenlab.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20070718/f2f65ebe/attachment-0001.pgp
More information about the SLDev
mailing list