Jump to content

Off-sim construction - islands


animats
 Share

You are about to reply to a thread that has been inactive for 1395 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

offsimislands.thumb.jpg.af43522377bd9be00f3bd00f79d8af63.jpg

Some rather nice off-sim islands. Only the the part with the shack, at the left, is on-sim.

I've seen off-sim islands before, but these match the real region terrain very well. The entire estate is surrounded by islands like these.

This suggests a way to give SL more draw distance at low cost with a viewer mod. Suppose we had a simplified model for each sim - a terrain mesh with about 4x4m squares. Like map tiles, but with elevation. These would be created by some bot process that took pictures from above, read elevation data, turned out low-rez mesh objects, and put them on a server. There's an old product on Marketplace which does something like this.The viewer would fetch the mesh objects these based on region ID and sun position, for lighting - have pictures for the usual Midnight, Sunrise, Midday, and Sunset - and draw them beyond regular draw distance.

If this is done well, you can use less draw distance and still see far into the distance. Sailors could see land in the distance. Flyers could find airports. Places with good distant scenery, like the Snowlands, could see it. Second Life has some beautiful mountain ranges you can never see properly.

Some technical details:

  • As with the SL map, after making the region-sized tiles, make lower rez tiles for 4 regions, 16 regions, 64 regions, and 256 regions. When flying, you can then see for miles. Like my  "slippy map" of Second Life. Try it. It's the same map tiles as the SL map, but with a viewer that works like Google Maps, so you can tilt and pan and zoom. The land in the distance is coming from tiles that hold many regions. This kind of thing has the nice property that, no matter how many regions are on screen, you only need a fixed number of objects.
  • The pictures used can just be the base terrain image at first (this is available from an SL survey, and Grid Survey shows it), but it's possible to do better, and get large objects into the image. You'd like to see blurry images of distant buildings.
  • Isolated regions (no neighboring sim on all 4 edges) don't get this feature. So they still see water out to the horizon..
  • There's a simple calculation that has to be done so you can't see nearby estates you can never reach. Each region is in a group of "reachable regions", and only those are displayed. So you don't see disconnected estates that sit offshore of mainland.
  • Like the SL map, these are not updated often. Daily, maybe. Keep the overhead down.
  • Each should be drawable with one draw call, so it's almost entirely GPU work; little CPU work.

Just about every big-world video game has something like this. SL needs to catch up.

 

 

  • Like 1
  • Haha 1
Link to comment
Share on other sites

I can be cynical and say that the last thing we want in SL is to see all the ugly crap in the neighbour sims. ;)

But I won't because I agree very much with you in principle. Possibly apart from a user friendly itnerface there is nothing I miss more in Second Life than the concept of Big Spaces. It seems to have been a vital part of the original SL vision and it's still part of LL's marketing strategy but LL never did much to facilitate and devlop the idea and by now it would require so many and so big changes on so many levels I seriously can't see how it can possibly be done within the current SL framework.

An autogenerated "wide view" surround scene can actually be done much simpler than what you suggest, just some flat billboards would do. But as it is now, it would leave a hole in the middle with big areas outside the draw distance but too close to be rendered as any kind of "landscape impostors". The only solution to this would be to crank up the draw distance to 500 m or so and that's simply not realistic with the cotnent we tend to have in SL these days.

Link to comment
Share on other sites

5 hours ago, ChinRey said:

nothing I miss more in Second Life than the concept of Big Spaces.

Yes. When SL started, nobody had big spaces. Now, they're normal in the better MMOs. Here's a screenshot from Red Dead Redemption.

deer-hunting-scene-in-wild-west-based-re

Red Dead Redemption with mountains in the distance.

Now that's what SL should look like. That's what I'm proposing here.

I'm bringing up ideas like this again because LL has been purchased by new owners. Perhaps they will have less of the "can't do" attitude of the old management.

Here's what a "Project Big World" would need to bring SL up to modern standards:

  • Distant sim impostors, as above.
  • Automatic impostor generation for lowest LOD objects.
  • Fix region crossings so they fail no more than once a week per user, instead of once an hour.
  • Fix the bug where diagonally adjacent nearby sims sometimes disappear.

Do all that, and SL will look a lot more like a modern MMO.

All modern big-world MMOs have this.

Here's GTA V:

GTA-V-2.jpg

GTA V with mountains in the distance.

Assassins-Creed-Valhalla-new-screenshots

Assassin's Creed with hills in the distance.

dual_universe_pre-alpha_teaser_2017_bq.j

Dual Universe with hills in the distance. Dual Universe has user-created content, like Second Life.

Key takeaway: All other successful large MMOs and virtual worlds do distant views right. All new users expect that. If SL wants to attract new users, this has to be fixed. "Can't do that" is no longer an option.

 

Edited by animats
  • Like 2
Link to comment
Share on other sites

The source engine "kinda" pioneered the idea of flexible 3D skyboxes, they had a system where your skybox could be created at a 1:20 scale, and provided you could "conceal" the edge between the play area and the skybox, it could be very convincing.

Oddly familiar right? :P

LvmswRZ.thumb.jpg.42b31fcbdfe1b7da785e9d701a2860d2.jpg5eaba55f9221e.jpg.e2dd6362aaab0c73add3a7421b5ea106.jpg5eaba55e5cd95.jpg.b4e51d0c983049d3dddeafb80638926d.jpg

(The reason for the 1:20 scale was so you could have a 3D skybox that appeared larger than your playable area, even if your playable area was close to the maximum map size supported by the engine.

I wouldn't mind that in SL...

Edited by Kyrah Abattoir
Link to comment
Share on other sites

i quite like the idea

a question is how to do the maps when the regions are checkerboarded or say L-shape ? I think if can come up with a way to stitch the maps together with all the various region layouts in some coherent view then will be more likely for Linden to look at it

Link to comment
Share on other sites

12 hours ago, Mollymews said:

i quite like the idea

a question is how to do the maps when the regions are checkerboarded or say L-shape ? I think if can come up with a way to stitch the maps together with all the various region layouts in some coherent view then will be more likely for Linden to look at it

noncontinent.thumb.jpg.360ce45ed2a9d29163ada409cf09c7b0.jpg

A non-continent. You can't cross from one region to another.  You can't even see the nearby regions.

Is that what you had in mind? You're concerned about how to tell what can be seen from where? There's a standard algorithm for that, called "transitive closure".

 

Link to comment
Share on other sites

14 minutes ago, animats said:

noncontinent.thumb.jpg.360ce45ed2a9d29163ada409cf09c7b0.jpg

A non-continent. You can't cross from one region to another.  You can't even see the nearby regions.

Is that what you had in mind? You're concerned about how to tell what can be seen from where? There's a standard algorithm for that, called "transitive closure".

 

yes, that makes sense

suppose we had 5 regions laid out in a cross. Then in lay terms we would have a large square map some size larger than 9 regions.  Then we would lay our cross over the map, yes ?

 

Edited by Mollymews
typ
Link to comment
Share on other sites

There's two very different requests here.

1: "Put junk off-sim to replace the old Sim-Surround Megaprim Hacks"

2: "Have an entire exquisite horizon-line vista that is renderable from any point ( and in the cases of all of these triple A game titles showcased  ~ able to be walked to as well ) 

These are two incredibly different things.

One is expanding upon a stop-gap hacky measure to try and have matte paint type stuff exist outside a sim's numerical coordinate system~  the other... well...  the other is complicated...

SL is rendered in world-space.  Every entity in SL ~including ones that you'd think had a local transform ~ such as a rigged avatar ~ simply doesn't have a local coordinate space.  So ~ when you're swinging your arm on your avatar while SL is aware of the skeletal hierarchy in principal  ~ as far as the the sim code and renderer are concerned ~ SL is going "move bone mElbow at sim location 140.444 , 22.634992 , 44.9294"   to denote the location that your elbow is moving at in world-coordinate space.  Because of the lack of coordinate spaces~ SL simply can't do the AAA game "walk into the distance" ~ "look at all the pretty houses on the horizon line"  the underpinning maths simply aren't there. Floating point numbers only have so many degrees of precision.  In order to fix this ~ we'd literally have to re-invent the entirety of the SL coordinate space, to include object-space and update the render code.  At that point ~ we might as well just re-invent the rest of SL as well.   Which I'm not against in principal ~ but essentially to 'properly address this' ~ you'd literally have to make SL 2.0 (Not Sansar).

 

As for ~ "Seeing neighboring estates" ~ I'm a bit confused about this ask.  They're private estates, that was the entire marketing point of them ~ that you don't see the adjacent sims, that's what makes them "Not the Main-Land".  Or are you proposing that ~ each region come with an extra surrounding 8 regions of 'make it pretty space" ?

  • Like 1
Link to comment
Share on other sites

50 minutes ago, polysail said:

Floating point numbers only have so many degrees of precision.  In order to fix this ~ we'd literally have to re-invent the entirety of the SL coordinate space, to include object-space and update the render code.  At that point ~ we might as well just re-invent the rest of SL as well. 

That's a problem. You can set your draw distance out to 1km and not see visible rounding problems, so you can push this idea at least that far.  Need to do some math on how big the error would be at longer ranges. There will be error, but it may be sub-pixel at distance.

Link to comment
Share on other sites

On 7/15/2020 at 12:49 AM, animats said:

noncontinent.thumb.jpg.360ce45ed2a9d29163ada409cf09c7b0.jpg

A non-continent. You can't cross from one region to another.  You can't even see the nearby regions.

Is that what you had in mind? You're concerned about how to tell what can be seen from where? There's a standard algorithm for that, called "transitive closure".

 

I don't think we should worry about checkerboard estates, they did this on purpose so they could maximize beachfront rentals, now they get to live with it. And yes I'm not interested in catering to people who have consistently been trying to sell off SL as a set of disconnected IMVU-style bedrooms with seaside view.

Edited by Kyrah Abattoir
Link to comment
Share on other sites

2 hours ago, polysail said:

SL is rendered in world-space.  Every entity in SL ~including ones that you'd think had a local transform ~ such as a rigged avatar ~ simply doesn't have a local coordinate space.  So ~ when you're swinging your arm on your avatar while SL is aware of the skeletal hierarchy in principal  ~ as far as the the sim code and renderer are concerned ~ SL is going "move bone mElbow at sim location 140.444 , 22.634992 , 44.9294"   to denote the location that your elbow is moving at in world-coordinate space.  Because of the lack of coordinate spaces~ SL simply can't do the AAA game "walk into the distance" ~ "look at all the pretty houses on the horizon line"  the underpinning maths simply aren't there. Floating point numbers only have so many degrees of precision.  In order to fix this ~ we'd literally have to re-invent the entirety of the SL coordinate space, to include object-space and update the render code.  At that point ~ we might as well just re-invent the rest of SL as well.   Which I'm not against in principal ~ but essentially to 'properly address this' ~ you'd literally have to make SL 2.0 (Not Sansar).

This is actually incorrect. Local vs World coordinates are typically a rendering paradigm, and not related to how the simulation is handling the world itself.

SL already handles horizontal space in a discrete fashion if you haven't noticed (on each region change, coordinates are converted back into the 0-256 range), it is actually how many games handle larger than life game worlds: by splitting the space into discrete sectors.

In the case of SL, the only time the problem becomes apparent is when going "up" simply because the build limit used to be 768 meters, which is perfectly reasonable for any game engine out there that doesn't do some complex orbital landing illusion (and it is always an illusion when it involves orbital mechanics).

This limit was due to the physics engine limitations. Physics engines really hate floating point precision errors and go pear shaped long before visual glitches appear, on most game engines out there this means that physics will begin to break down around the 10000 unit mark.

Link to comment
Share on other sites

Uhm~ I'm not sure how to reply to this ~ you tell me I'm incorrect ~ then proceed to explain  ~ rather precisely ~ exactly how I'm correct?

Maybe my explanation wasn't clear??

Yes SL has the 'open world' split up into multiple integrated coordinate spaces.  That's a sim.  When you set foot over a sim crossing you go from +255 in one coordinate space to 0 in the next.  But within the bounds of each sim, everything is calculated, in world coordinate space.  Every bone movement, every object movement, every ~  everything.  You can see the errors of this visibly start to fail by~ as you indicated flying to 2000 meters and watching your eyeballs shake in your head due to floating point precision errors.

This is ~ in stark contrast to how most modern games handle this problem ~ by calculating the world, relative to the player, meaning that there is never anything suffering from precision errors, unless it's in the distance~ which is precisely the paradigm change that I was referring to.

Edited by polysail
Link to comment
Share on other sites

1 hour ago, polysail said:

Yes SL has the 'open world' split up into multiple integrated coordinate spaces.  That's a sim.

No, that's a region! Some Lindens are quite passionate about this. :P

But more seriously, I don't think that's a big issue. Yes, we do have some minor distortions at 1000 m but even in the msot extreme case - an avatar standing at a region's zero point looking northwest - 1000 m is still almost two full regions away from the one the avatar is in.

Link to comment
Share on other sites

You will get some positional error far off-sim, since OpenGL is only 32 bit. But I don't think you'll see it, because the viewpoint is too far away. You can turn up the draw distance to 1024m and see what a kilometer of view looks like. (It helps if your computer has at least 16GB of RAM, and it takes minutes for the scene to load fully.) That's the effect I have in mind, but without the huge overhead of a very large draw distance.

I'm trying to take some good pictures of the mountains of Heterocera with a huge draw distance. But the viewer is running out of memory. I'll try the snowlands of Sansara during a period when SL is quiet. That will show the effect I have in mind.

Edited by animats
Link to comment
Share on other sites

Yes ~  the "make sim surrounds on private islands a standardized feature" idea makes a lot of sense I think  ~ it's also the kind of small incremental change LL seems to be comfortable with.   Viewing / impostring adjacent sims / mainland sims ~ is a bit less so ~

But as I said in my original reply ~ that's a very different ask from the notion of  "Make SL able to do AAA type 'Big Worlds' ~ "  which implies a necessary full coordinate-space rework.

Link to comment
Share on other sites

This is what I'm talking about. This is looking across the central lake in Bellessaria.

belliviewdist250.thumb.jpg.d8d890bdb97e3a0356caf872ff25bd64.jpg

Draw distance 250m. This isn't open ocean; it's a medium sized lake.

 

belliviewdist1024.thumb.jpg.ba537f0a064a2b3d7bae9c6a70592f94.jpg

Draw distance 1024m. There's land across the lake! Not that far away.

That's the goal here. Views like this, but with reasonable overhead. Setting draw distance to 1024m slows the viewer to a crawl and takes minutes to load the scene.

Those distant sims are being drawn in 32-bit OpenGL space. The positions are probably a fraction of a meter off due to roundoff error. You can't see that at 1km distance.

  • Like 1
Link to comment
Share on other sites

1 hour ago, animats said:

Setting draw distance to 1024m slows the viewer to a crawl and takes minutes to load the scene.

A bit off topic I guess but that depends a lot on where you are. The last few months I've spent a lot of time with with fairly high graphics settings, sometimes even ultra, and 1024 m draw distance at my own place and at the premium sandboxes around Limia and I although it does slow down everything of course, I've never had any serious problems with it. The sandboxes are practically empty of course but with 1024 m draw distance I also get the four Gulch regions, Orville and a few of the old premium home regions.

I definitely wouldn't recommend it at Bellisseria or other high lag parts of SL of course but in areas where the content is mainly made from high performance mesh and/or good old prim builds even my battered old off-the-shelf Lenovo home computer can handle such extreme graphics settings.

Link to comment
Share on other sites

3 hours ago, ChinRey said:

...1024 m draw distance at my own place and at the premium sandboxes around Limia and I although it does slow down everything of course, I've never had any serious problems with it. The sandboxes are practically empty of course ... I definitely wouldn't recommend it at Bellisseria or other high lag parts of SL ..

Right. You can try a huge draw distance, and it's useful for taking pictures. It slows down the viewer, puts a "child user" (looking in, but not doing anything) on every sim within draw distance, and means downloading up to 50 sims worth of assets from the asset servers. So, only useful for test and photo purposes unless you're in a very empty area.

What I'm talking about is a way to get the same look with much lower overhead and higher performance.

Link to comment
Share on other sites

5 hours ago, animats said:

This is what I'm talking about. This is looking across the central lake in Bellessaria.

Draw distance 250m. This isn't open ocean; it's a medium sized lake.

Draw distance 1024m. There's land across the lake! Not that far away.

i kinda get this. Is similar to when you were talking about billboards in a previous post

like the scene you show above at 1024m is like a billboard clientside effect.  Were we to reduce our draw distance to 256m then the billboard would seem to be at 257m. 128 draw distance then billboard 129.  2048m draw distance then 2049. And so on

if it was a clientside effect (a 360 degree billboard) then be quite low in resource consumption and application. Also opens up these billboards as assets, similar to EEP assets

Link to comment
Share on other sites

4 hours ago, animats said:

What I'm talking about is a way to get the same look with much lower overhead and higher performance.

I know but a sweeping statement about 1024 m draw distance meaning minutes of load time had to be corrected because some people might take it literally. ;)

It's not completely off topic either because we have to consider the middle distance. A surround landscape impostor system of any kind (let's call them PSS - Prerendeed Surround Scenes) is only really useful if the entire scene between it and the avatar is rendered properly. Do we really want prerendered scenes as close as 128 m? I don't think so. And we definitely don't want them as close as 32 m, which I've often seen recommended as draw distance.

There are three problems in particular with drawing the PSS too close to the point of view.

One is that the closer they are the more often they have to be updated as the avatar or camera moves around and the more problems we have with objects right on or close to the border between PSS and regular rendering. There's a huge difference between 31 and 32 m in this context whilst the difference between 1000 and 1100 m hardly matters at all. This becomes even more important when we take object size into account and we have to do that. If an object is 64 m in size and 128 m away, the nearest part of it is actually only 96 m away. If it's 32 m away from your camera your avatar is already inside it.

One of the big problems we have with LoD models and impostors is the sudden and often very noticeable switches between them as we move around. We can minimize this with good LoD models and impostors but because of the numerous variables in shading in SL it can't be completely avoided. Closeup PSS will greatly increase the problem.

The third problems is that we don't really want objects within the same region to be handled differently if it can be avoided. The software has to determine which objects are to be rendered the normal way and which are to be included in the PSS and it can't recalculate that each time there is a minute change in the avatar/camera location. I think the only realistic - and definitely the easiest - way to implement PSS is to do it Umbra style with predefined blocks of content. In SL we happene to have such predefined blocks in place already, each and every rezzed object is assigned to a specific region. Rendering an entire distant region as a PSS should be a fairly trivial task, rendering selected objects in a region that way is far more complicated.

Edited by ChinRey
Typos
  • Like 1
Link to comment
Share on other sites

Why not doing this using EEP? With the ability to stick custom textures to the environment, it would be a matter of adding 1 layer for the horizon view, and a scale control to fake the distance and tiling if needed and a rotation value to slide the image along the sky dome equator. This way the user can decide what type of horizon view they want, instead of an automatic system that might be photographing eyesore neighboring sims or completely different themed lands. In a continent, at that point, if you want the actual neighboring landscape, it would be just a matter of standing on a side of the region, set up the photo and repeat with the same settings on the other 3 sides, and stich the 4 images together externally with transparency where needed. Really just matte painting. 

Link to comment
Share on other sites

Making image planes for entire sims in lieu of actually displaying the content of those sims simply does not work, due to the nature of such planar representations.

  1. They don't parallax correctly ~  meaning if you had such a thing while ~ say riding a motor vehicle across the mainland ~ the trees and houses up until the image plane would move correctly ~ then the trees on the image plane would not.
  2. They also don't do vertical changes correctly ~ so if there is any Z height difference, due to terrain ~ or say from a flying vehicle of some sort ~ or just a flying avatar ~ the illusion would break.  The thing is ~ the people who actually do want their draw distances turned up to 500+ meters ~ are all the members of the SL community who are very interested in boating ~ flying aircraft ~ etc.  You can't simply doodle their runway that's next to a mountain on an image plane and expect them to be happy about it ~  these people care about realism and accuracy to the degree that they want to make sure the landing lights on their run way pulse at the correct number of flashes per minute to mimic their real-life counterparts.
  3. They don't do lighting correctly.  If I place a house on a hill on a horizon line while the sun is setting it reflects light properly in a manner that tells someone ~ even a kilometer away "there's a box there with a roof shape on it" if you replace that with an image of a house at some given time of day ~ it will necessarily look incorrect and pretty much every other time of day.  Even if you try and mitigate this issue with  ~ say having four different image sets ~ This still won't account for the differentiation in environment settings. Just using library EEP settings "[NB] P-Haze" vs "Dynamic Richness" will yield totally different sun angles and color tones at the same "time of day"  You simply cannot use baked lighting in a dynamically lit environment. It just doesn't work.

It's for the above reasons I didn't really take the "let's image plane an entire sim" idea seriously ~ among the myriad of other ( sort of proposed ?? ) notions ~ and instead focused on other steps to improve rendering efficiency / calculation spaces in order to improve the SL user experience.

Image plane impostors don't work for anything besides foliage and other similarly constructed organic creations that have a central core with branched out components ~ the moment you try to simulate anything with a vaguely solid form ~ the impostor breaks down catastrophically.  There is a reason these are not used in modern day game engines.  Image planes won't keep SL relevant into the 2020's any more than having pose-ball based animations will. 

Link to comment
Share on other sites

They 'could' add an 'off sim environment' checkbox that reserve the the area from 3800 to 4000 meters for your off-sim landscape, built at a 20m>1m scale.

Your viewer would then silently use a second camera and render that zone before rendering the regular sim itself?

Link to comment
Share on other sites

12 minutes ago, Kyrah Abattoir said:

They 'could' add an 'off sim environment' checkbox that reserve the the area from 3800 to 4000 meters for your off-sim landscape, built at a 20m>1m scale.

Your viewer would then silently use a second camera and render that zone before rendering the regular sim itself?

Yes ~ rendering distant elements with a secondary camera with a different Near / FarClip plane a lower FPS is how most games handle composing massive vistas.  This helps with rounding errors as well as performance since it eliminates huge ZBuffer distances.  The Z-Axis in this case is relative to camera ~ and represents the overall depth of the scene, ~ not to be confused with Z height in the SL World  ~ which is how high up things are~ which also causes jitter due to the fact that things are rendered in world-coordinate space ~ these are compounding errors... but yeah... Like I said ~ Massive changes to SL render code would be required ~ but technically all of this "is possible".  The question is (as with all possible things ) "would it actually materially improve anything?"   I don't know the answer to that.  SL is a very specific use case ~ and as animats has pointed out ~ it's not clear that rounding errors at these "relatively short "1-3 km viewing distances would be material enough to cause notable jitter.  I don't actually know.

I'm not a graphics programmer ~ I just play one on TV.

Edited by polysail
Link to comment
Share on other sites

On 7/18/2020 at 11:18 PM, animats said:

Right. You can try a huge draw distance, and it's useful for taking pictures. It slows down the viewer, puts a "child user" (looking in, but not doing anything) on every sim within draw distance, and means downloading up to 50 sims worth of assets from the asset servers. So, only useful for test and photo purposes unless you're in a very empty area.

What I'm talking about is a way to get the same look with much lower overhead and higher performance.

Do each of these "Child Users" come with their own camera?  Or is all of this data fed into the MVP matrix for the single user camera?

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1395 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...