Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007592opensim[REGION] OpenSim Corepublic2015-05-28 04:352015-06-08 05:41
Assigned ToRobert Adams 
PlatformPCOperating SystemWindowsOperating System Version8.1
Product Versionmaster (dev code) 
Target VersionFixed in Versionmaster (dev code) 
Summary0007592: Terrain only shows to 256m even when view distance is 512m, objects show to 512m
DescriptionIf Firestorm 4.7.1 view distance is set to 512m, I note that I only have terrain load out to 256m in all directions on adjacent ( normal 256x256m) sims. Whereas the objects on those regions show correctly all the way to 512m.

See attached image 2015-05-28-OSGrid-View-512m-Only-256m-Terrain Shows.jpg
TagsNo tags attached.
Git Revision or version numberr/26024
Run Mode Grid (Multiple Regions per Sim)
Physics EngineBulletSim
Script Engine
Environment.NET / Windows64
Mono VersionNone
ViewerFirestorm 4.7.1 OS
Attached Filesjpg file icon 2015-05-28-OSGrid-View-512m-Only-256m-Terrain Shows.jpg [^] (234,486 bytes) 2015-05-28 04:37

jpg file icon 2015-05-28-OSGrid-View-512m-Only-256m-Terrain-Shows-Camera-Swung.jpg [^] (227,743 bytes) 2015-05-28 07:40

jpg file icon 2015-05-30-Terrain-Chopped-Off.jpg [^] (255,244 bytes) 2015-05-29 01:24

jpg file icon Snapshot-1024m-3-Regions-Long.jpg [^] (262,181 bytes) 2015-06-06 09:39

- Relationships

-  Notes
aiaustin (developer)
2015-05-28 07:40

If I swing the camera round even behind the terrain cut off point the terrain does not load and show, I see the cut off wall where terrain should be.

See 2015-05-28-OSGrid-View-512m-Only-256m-Terrain-Shows-Camera-Swung.jpg

See example taken from a swung round camera where avatar is still on the pinhead island at same point as in original image (2015-05-28-OSGrid-View-512m-Only-256m-Terrain Shows.jpg)
Diva (administrator)
2015-05-28 10:51

This has been the behavior in varregions for a while, so that the potentially huge terrain data doesn't overwhelm the login process. You need to move your avatar towards the missing terrain for it to load.
aiaustin (developer)
2015-05-28 14:07
edited on: 2015-05-29 01:57

Note that my report was for normal regions... no varregions are involved. Objects load correctly out to the viewer set view distance, but terrain load stops at 256m as far as I can see, even when view distances are set, e.g., to 512m... a typical distance used to get images across a couple of regions.

For Firestorm 4.7.1, I do have camera constraints disabled, and I have the default setting for Firestorm -> Extras -> "enable progressive draw distance stepping" which is unticked.

The load can be progressive out from the avatar position, as is the default now, but should not stop until the viewer set distance. It wouod be a pity if we have to force avatars to fly round just to force terrain loading. If varregion doe isl case handling is necessary, it would be good to restore the behaviour on terrain loading out to the set viewer draw distance. But I would think that was desired even on varregions.. even if done in a staged way.

View distance and hence also terrain loading, also should be from the camera position, not the avatar position of course. It seems the terrain load is anchored now on where the avatar is placed only.

aiaustin (developer)
2015-05-29 01:24
edited on: 2015-05-29 01:33

Thanks Diva.. I understand what is happening now.... I assume previously that terrain for (normal 256mx256m) regions was loaded up to the viewer set distance or to include the whole of a region that was partially within the viewer set view distance. And you note that this causes problems for those using varregions due to the size of the terrain that would be passed to the viewer. Hence a (hard wired?) limit must have been placed on the distance FROM THE AVATAR that varregion terrain is loaded and then it stops, and is ONLY loaded when THE AVATAR MOVES. Moving the camera into the terrain zone not loaded has no effect now.

Those using a fly cam to make machinima for example will now see chopped off terrain even though the scene objects within viewer set max view distance will load as they should properly.

This is clearly a bug. At least it would make more sense for all terrain within the viewer max draw distance to be loaded, not some fixed (?) distance out. Can the developer who added the selective varregion terrain loading code take a look?

Perhaps one thing to do is to allow this to be turned on or off via a .ini file setting. maybe one exists? Or to selectively implement this limitation for varregions and not for normal regions (which I assume are still the vast majority of deployed regions on the various grids?)

But the key usability issue is that it seems to be that when the camera moves near to terrain that is not already loaded, the exposed terrain is not triggered for load. All scene objects do load as expected.

Attached again is a simple example with the max view distance set to 180m of an avatar on one 256x256m region and the camera is swung over the adjacent region, e.g. to video cam the region from the air for a movie, and although all the adjacent regions objects show correctly in the flycam shots, at a point that looks like it might be 256m hard wired (?) the terrain is chopped off completely.

See 2015-05-30-Terrain-Chopped-Off.jpg

aiaustin (developer)
2015-05-29 02:39
edited on: 2015-05-29 08:26

I have tracked this down I think to the varregion progressive terrain load commits by Robert Adams... and perhaps a temp fix at r/24367 on 2014-02-19 that used draw distance from avatar and current region size (normally 256m) rather than from the viewer (camera).

For normal region users, this behaviour can be corrected by changing OpenSim.ini to

SendTerrainUpdatesByViewDistance=false (the default is true).

Possibly the default could be amended to avoid this issue for non-var region users until varregion specific handling code is corrected?

-------------- [^]
r/24367 2014-02-19 Robert Adams
varregion: make scene default draw distance to be the maximum size of the
region. This is a temp fix for the use of draw distance to compute child
regions. Eventually must use the draw distance from the viewer for the
computation. [^]
2014-03-17 Robert Adams
varregion: send terrain patches from where the avatar outward if the parameter
This tracks which patches have been sent to each client and outputs the
patches as the avatar moves. [^]
2014-03-21 Robert Adams
varregion: More tweeking to only sending patches within avatar draw distance.
Still has problems with child avatars.

Robert Adams (administrator)
2015-05-30 21:42

If I'm understanding the problem being reported... if there are several adjacent 256x256 regions and an avatar is in, say, the center region of 9 regions then, if the viewer draw distance is set to 1000, the terrain in the adjacent regions is only displayed out to 256m from the avatar rather than the full 1000m of the view distance.

Correct description of the problem?

And, as you discovered, the terrain sending by view distance can be turned off which it should probably be if all regions in view are legacy sized regions.
aiaustin (developer)
2015-05-31 01:14
edited on: 2015-05-31 01:40

That is correct Robert. If your camera is at your avatar position.

But if you swing the camera separately, then really the terrain should show out to the viewer set view distance from the camera, and not stay fixed where the avatar is placed. Othewise fly cam machinima and snapshots don't work properly. A shot like our Vue regions overview would not be possible for example as that shows out beyond even the adjacent region.

See image on [^]

I would add that displaying the terrain out in a spiral from the current camera position is fine, rather than the lawn mower style terrain load. But the sensitive location to load more terrain should be the current camera position (versus avatar position) out to the current max viewer set distance (or a bit beyond since at the very edge we also seem to get terrain texture not being correct). Changing the viewer set max distance also needs to trigger more terrain load if necessary, as it does with objects in view already.

Robert Adams (administrator)
2015-06-04 18:38

I'm thinking that the problem is that people expect adjacent legacy sized regions to display completely even if draw distance is set down. I'm not sure camera position is sent to child regions so I will fix it so legacy sized regions display completely no matter what the INI parameter is set to. This will make legacy regions operate as they have in the past and varregions can be different.
Robert Adams (administrator)
2015-06-06 07:17

I pushed an update to master that essentially disables terrain sending by view distance for legacy sized regions. For larger varregions, view distance will limit the terrain sent but for legacy regions, they will get all of their terrain like they always have. Doing something fancy is complicated by the camera position not being updated in child regions (adjacent regions) so there was no way to get it right. So, I concluded it should just make the old stuff work they way it always has no matter the setting of SentTerrainUpdatesByViewDistance.
aiaustin (developer)
2015-06-06 09:34
edited on: 2015-06-06 09:39

Thanks Robert, that seems to work with legacy sized regions showing the region the avatar is on and each of the 8 adjacent regions.

Regions beyond that do not show at all... but neither does the objects on those regions. Even when camera is swung over them or when view distance should include them when its set to 512m or more. The view is limited to current regions + 8 surrounding ones whether or not I leave SendTerrainUpdatesByViewDistance as the default (true) or explicitly set it false. See attached image Snapshot-1024m-3-Regions-Long.jpg from Second Life showing a view 3 regions deep from avatar position, all showing fine.

Maybe it has always been like that in OpenSim and its not a result of the varregion and limited terrain sending code?

In Second Life with the same viewer (Firestorm 4.7.1 OS version) regions beyond the adjacent ones show when view distance is set appropriately or when camera is swung over them.

Robert Adams (administrator)
2015-06-06 12:06

The implementation is to see the current region and the immediately adjoining regions (the "child" regions). That's how SL handles it. It is possible to extend that view by increasing the region view distance ("that really exists?" yes, Virginia there is a region view distance). The region view distance controls the number of children connected and can include many more regions than just the immediately adjoining.

Check out [Startup]DefaultDrawDistance which is defaulted to 256. Some people have played with having many regions extend off into the distance. The problem is usually the viewer coughing on all the objects.
aiaustin (developer)
2015-06-06 13:47
edited on: 2015-06-08 01:08

Got it, thanks. I will experiment.

AiLand grid on [^] is now set with OpenSim.ini DefaultDrawDistance = 511.0 and looks to work fine with terrain showing out to 2 regiosn beyond current avatar position, and Firestorm 4.7.1 Draw Distance can be moved up beyond 512m and up to 1024m to show or hide objects out beyond the adjacent region.

aiaustin (developer)
2015-06-08 05:41

This issue is now addressed with legacy handling of normal 256m X 256m regions in a fix By Robert Adams at r/26056 (6-Jun-2015).

Also OpenSim.ini DefaultDrawDistance can be increased from default 255.0 to show more terrain away from current avatar position.

- Issue History
Date Modified Username Field Change
2015-05-28 04:35 aiaustin New Issue
2015-05-28 04:37 aiaustin File Added: 2015-05-28-OSGrid-View-512m-Only-256m-Terrain Shows.jpg
2015-05-28 07:40 aiaustin Note Added: 0028477
2015-05-28 07:40 aiaustin File Added: 2015-05-28-OSGrid-View-512m-Only-256m-Terrain-Shows-Camera-Swung.jpg
2015-05-28 10:51 Diva Note Added: 0028481
2015-05-28 14:07 aiaustin Note Added: 0028482
2015-05-28 14:08 aiaustin Note Edited: 0028482 View Revisions
2015-05-28 14:21 aiaustin Note Edited: 0028482 View Revisions
2015-05-29 01:24 aiaustin Note Added: 0028486
2015-05-29 01:24 aiaustin File Added: 2015-05-30-Terrain-Chopped-Off.jpg
2015-05-29 01:33 aiaustin Note Edited: 0028486 View Revisions
2015-05-29 01:57 aiaustin Note Edited: 0028482 View Revisions
2015-05-29 02:39 aiaustin Note Added: 0028487
2015-05-29 08:25 aiaustin Note Edited: 0028487 View Revisions
2015-05-29 08:26 aiaustin Note Edited: 0028487 View Revisions
2015-05-30 21:42 Robert Adams Note Added: 0028511
2015-05-31 01:14 aiaustin Note Added: 0028512
2015-05-31 01:19 aiaustin Note Edited: 0028512 View Revisions
2015-05-31 01:20 aiaustin Note Edited: 0028512 View Revisions
2015-05-31 01:20 aiaustin Note Edited: 0028512 View Revisions
2015-05-31 01:21 aiaustin Note Edited: 0028512 View Revisions
2015-05-31 01:40 aiaustin Note Edited: 0028512 View Revisions
2015-06-04 18:38 Robert Adams Note Added: 0028597
2015-06-06 07:17 Robert Adams Note Added: 0028621
2015-06-06 09:34 aiaustin Note Added: 0028624
2015-06-06 09:39 aiaustin Note Edited: 0028624 View Revisions
2015-06-06 09:39 aiaustin File Added: Snapshot-1024m-3-Regions-Long.jpg
2015-06-06 12:06 Robert Adams Note Added: 0028625
2015-06-06 13:47 aiaustin Note Added: 0028630
2015-06-07 01:38 aiaustin Assigned To => Robert Adams
2015-06-07 01:38 aiaustin Status new => assigned
2015-06-08 01:08 aiaustin Note Edited: 0028630 View Revisions
2015-06-08 05:41 aiaustin Note Added: 0028643
2015-06-08 05:41 aiaustin Status assigned => resolved
2015-06-08 05:41 aiaustin Fixed in Version => master (dev code)
2015-06-08 05:41 aiaustin Resolution open => fixed
2015-06-08 05:41 aiaustin Status resolved => closed

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker