Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Land “void area” for better FPS and privacy

grumble Loudon
A Little bit a lion
Join date: 30 Nov 2005
Posts: 612
03-10-2006 18:09
This feature would increase FPS and provide privacy.

Note: This feature is designed to only be used inside of buildings.

I suggest that in the land editor you can enter two vectors, to define the two corners, and have a check box to enable a "void area".

After validating that, the Z-axis is within 30m of the ground and the box is completely over that parcel, the Sim would add this void area to the list of void bounding boxes for that sim.

The Sim would then send the list of bounding boxes to the client where it would store it.

The client would need one list for each Sim it can see.
Note: I’m assuming the client does the Z-order list and not the Sim.

The routine that creates the “Viewable objects list” would first check the list of void boxes to see if the Avatars center position is inside of one. If it is inside of a void box the code would remove all the objects that are outside of void box. If the avatar is outside of all of the void boxes, the code would remove all of the objects whose center lies inside any of the void boxes.

This prevents mouse look since you have to be inside the void area to see anything inside of the area.

As an additional feature the Sim could use the void box list to limit all Say and whisper chat messages. Note: llShout(n!=0,”text”) would still have to penetrate the void box in order for security scripts to function.
It would do this by first checking the list of void boxes to see if the sender is inside of any of them. Then, just like the object list, if it is inside of a void area it would only message Avatars/objects that inside that void box. If it was outside of all the void areas it would only message Avatars/objects that are outside of all the void areas.

This could actually be implemented right in the "scanner" code since I assuming both "say" and "sensor" use a "scan" to get a list of objects.

Notes:
1 . The physics engine would completely ignore the void box list. So shooting into the box could still hit someone.
2. The Z limit would be based on the higest land point.
3. Void boxes cannot intersect or be anything other than a rectangle.
4. The editor should re-order the entered coordinates so that they are well ordered.

The good news
.1. More privacy since mouse look could not see anything unless you are physically inside of the void area. And we can alreddy teleport them home if they jump inside.
We just need llReturnObject(key) to deal with spy scripts ;)
.2. It’s a good migration path for basements since the client would not have to draw anything including the horizon or the ground when an avatar is inside the void box.
.3. The Sim and/or Client could skip Day/Night lighting effects for objects inside of void boxes since it is assumed that they are inside of a building.

The bad news
.1. The pipeline delay would cause about a second delay of nothing when you enter or leave a void area.
.2. You have to build the building with double walls. One wall for the outside view and one wall for the inside view. Unless you are trying to make it look bigger on the inside than the outside. Tardis ;)
.3. You can’t use the prim reduction hollow cube technique for the outside walls since the center would then lie inside of the void area.
.4. You have to place a “non-transparent” “phantom” prim at the door or you will see right threw your building. A projected prim, similar to Sim crossing Prims, would also work and would create a hallway affect.
.4. Some lasy people might not place the prims on the outside and people could then fly into the void area by accident.

PS:
Adding a LSL command to edit these land propertys would allow for pre-built houses to have a secret room. The rez script would set the void area after it rezes that part of the building.
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
Alternate suggestion...
03-10-2006 19:20
Just put the void area below ground level. If you had an area 1024 meters down, the size of the parcel, that you could only get to via a script run by the parcel owner... you woudln't be able to see any of the rest of the sim, and the rest of the sim wouldn't be able to see you, and the rendering engine wouldn't have to be modified to deal with it.

The second person to create a void area in the sim would get one 2048 meters down.

And so on.

You'd create it with an option in the land wondow, possibly for some additional rent (say L$10/1024m/month), and have a script that called "llTeleportAgentToVoid(key agent)" in there.

Then in the void, you build your hidden room or whatever, and have a script that called "llTeleportAgentToLand()" to return them to the parcel's landing point.

The script could be placed on a touch(), in a volumedetect prim in a doorway, or whatever...
grumble Loudon
A Little bit a lion
Join date: 30 Nov 2005
Posts: 612
03-11-2006 13:15
The problem with putting it under ground right now is that the physics engine has an explicit “If (Z < ground level) then Z = Ground level” This means that it is impossible for an avatar to remain below ground level unless he/she is siting on an object.

The second problem is that the Sim ends at 0 so we only have 0 to “ground height”.

The third problem is that the water level is constant so you only have “Water height” to “Ground height”. Unless you want to use the water ;) I’ve seen some cool places that used the under water effect to really set the mood.

If the physics engine were to check that parels void area for the ground height check then the sit-teleporter would get us there just fine.

As I said, this “Void area” would be a good place to start to be able to make under ground areas since it allows you to chop out an area and if the physics engine were modified to check that land’s void box when applying the ground height, then we could build underground.
LaserFur Leonov
Registered User
Join date: 16 Jan 2006
Posts: 18
03-11-2006 13:24
Since each 4x4m square contains a copy of all the land settings, the edititor will have to revalidate the box's area when someone splits a parcel.
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
03-11-2006 16:59
From: grumble Loudon
The problem with putting it under ground right now is that the physics engine has an explicit “If (Z < ground level) then Z = Ground level” This means that it is impossible for an avatar to remain below ground level unless he/she is siting on an object.

The second problem is that the Sim ends at 0 so we only have 0 to “ground height”.
OK, these are BIG PROBLEMS if a resident were to try and implement it, but for something Linden Labs to implement these are so trivial as to be irrelevant. MUCH easier than going through and rewriting every part of the physics and rendering engine to know about volume clipping boxes that could be all over the place.
grumble Loudon
A Little bit a lion
Join date: 30 Nov 2005
Posts: 612
03-11-2006 22:03
From: Argent Stonecutter
OK, these are BIG PROBLEMS if a resident were to try and implement it, but for something Linden Labs to implement these are so trivial as to be irrelevant. MUCH easier than going through and rewriting every part of the physics and rendering engine to know about volume clipping boxes that could be all over the place.


Agreed, however I don’t see much in terms of coordination between the heights of peoples skyboxes. What is to stop your neighbor setting his at the same depth and mouse looking into yours and/or listening in?

Creating a 60m-radius zone around a room using push scripts would violate the TOS, especially if that zone is not all on your land.

I see “The great underground empire” as a wonderful concept with lot’s of possibilities, however it would require Sim stacking. “LL” could possibly do this using the older servers, but that adds more overhead.

It would be better if SL would automatically trim the viewable list based on what is actually viewable from a region, however it does not and doing that would be a lot harder.

In a way I trying to find a way to do the same kind of optimizations that are done in games by giving SL hints as to what is visible. I.E. if you are in this zone, nothing else is visible or nothing in this zone is visible from anywhere else.

Maybe SL could check all the prims that are “Locked” to create a zone(leaf) and limit the PVS automatically.

I know SL is a completely different graphics engine, however it does give some ideas as to what I am thinking.
http://developer.valvesoftware.com/wiki/Optimization_(Geometry)
http://wiki.beyondunreal.com/wiki/Mapping_Lessons

I think the “underground concept” would be a good place for a manually made series of linked zones (leaves). This would be a step backwards in terms of 3D ness to a carved out system, however this seems like a better fit since the ground is solid and must be carved out.

To move forwards you first must move back. - Segway controler code