[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