Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005820opensim[REGION] OpenSim Corepublic2011-12-12 11:342011-12-18 17:27
Assigned To 
PlatformCustomOperating SystemWindows 7Operating System Version64bit
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0005820: Feature: Show neighboring regions based on avatar's field of view
DescriptionThis is more of a feature than a bug. In OpenSim, an avatar is shown the 8 surrounding neighbors of the simulator he's in, once he connects to a region. The Second Life grid uses a better method, which I'm also suggesting for OpenSim. Instead of loading neighbors based on simulator positions, neighbors should be displayed to an avatar once they're "touched" by his field of view.

One advantage of this method is that the avatar is not given information about a simulator he doesn't see. In OpenSim, if your draw distance is set to 64 and you connect, you are still notified of all 8 neighbors around you, although you can only see 3 at a time from any given point. This decreases performance for no reason, by spamming the viewer during login / teleport with things it doesn't need to know.

Second advantage is allowing avatars with a high draw distance to see further than the closest neighbor. On the Linden grid, users with a draw distance beyond 256 can see two sets of regions, whereas those with a strong PC can use Debug Settings to set their FOV past 512 (eg: 1024) which allows them to see on a range greater than 2 neighbors. Although it's laggy, it's a beautiful sight to see a lot of sims in the distance. Also, the SL viewer allows positioning the camera far from the avatar, which can be used to look inside neighboring sims (by disabling "camera constraints" then control + alt + click-ing inside a neighbor). This can bring your view in a spot where you should be able to see other regions as well.

Since this already works on the Linden grids, I assume the client sends field of view information to the server. If so, I imagine OpenSim just needs to read where each avatar's camera is pointing, and instead of sending neighbors at logon, send them in real time once the person is looking at an edge / corner where a sim is present.
Additional Information[UPDATE] I re-tested how this works on the Linden grid with viewer 3.2.4. The current implementation is slightly different than what I described at first. First of all, neighboring regions are loaded based on avatar position + draw distance, not where the avatar is looking. If you login with a draw distance of 64 then turn it up to 256, a neighboring region behind you will appear on the minimap, even if you haven't looked at it. However, only terrains are loaded this way. Primitives (both on local region and neighbor regions) are only loaded once you look at them too. Also, moving the camera away from the avatar does not cause anything to load if it's past the avatar's draw distance. The avatar needs to be close enough in order for a primitive to display, and your camera will see an empty terrain if you move it independently around far sims.

Now I'm not suggesting to do this exactly like the LL grid. Personally, I find it better that in OpenSim, suddenly looking behind you after logging in does not cause primitives to start loading (although this means more flood since everything is sent at once). But I still support using avatar position + draw distance to limit the range on which primitives (and especially neighbors) are loaded. Perhaps there can be settings in opensim.ini for this? Where 0 means everything is loaded at once, 1 means limited by draw distance, and 2 limited by draw distance + where the field of view is pointing.
Tagscamera, flood, fov, grid, neighbor, region, sim, spam, view
Git Revision or version numberr/17539
Run Mode Grid (1 Region per Sim)
Physics EngineODE
Script Engine
Environment.NET / Windows32
Mono VersionNone
Viewer3.2.1 (244864)
Attached Files

- Relationships

-  Notes
Bo Iwu (reporter)
2011-12-18 17:27

Cool observations. Thank you

- Issue History
Date Modified Username Field Change
2011-12-12 11:34 mirceakitsune New Issue
2011-12-12 11:40 mirceakitsune Tag Attached: grid
2011-12-12 11:40 mirceakitsune Tag Attached: region
2011-12-12 11:40 mirceakitsune Tag Attached: camera
2011-12-12 11:40 mirceakitsune Tag Attached: flood
2011-12-12 11:40 mirceakitsune Tag Attached: fov
2011-12-12 11:40 mirceakitsune Tag Attached: neighbor
2011-12-12 11:40 mirceakitsune Tag Attached: sim
2011-12-12 11:40 mirceakitsune Tag Attached: spam
2011-12-12 11:40 mirceakitsune Tag Attached: view
2011-12-17 13:10 mirceakitsune Additional Information Updated View Revisions
2011-12-18 17:27 Bo Iwu Note Added: 0020573

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker