SimulatorFeatures

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(SimulatorFeaturesModule)
(Example of data sent to viewer (dev 0.9.2 version))
(41 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= SimulatorFeaturesModule =
+
This information is based on the current OpenSim development version. This has changed over time, occasionally in incoherent ways.
This information is based on current development version. This has in time, occasionally in incoherent ways
+
== SimulatorFeaturesModule Overview ==
== Overview ==
+
The SimulatorFeaturesModule provides support to the mechanism by which client programs (viewers) request information about some features or properties of a region, for example Bakes on Mesh (BOM) support, version of LSL/OSSL syntax, etc.<br>
The SimulatorFeaturesModule provides support to the mechanism client programs (viewers) use to request information about some features or properties of a region, for example BOM support, version of LSL/OSSL syntaxe, etc.<br>
+
Viewer should ask for this information every time they see a new region. Unfortunately some of this may require that the viewer already created an avatar on that region.
Viewer should ask for this information every time they see a new region. Unfortunately some of this may require that the viewer already created a avatar on that region.
+
This information is sent via HTTP with llsd xml encoding.<br>
This information is send via HTTP with llsd xml encoding. some information specific to opensimulator is sent on a section (llsd map) OpenSimExtras
+
Some information specific to OpenSimulator is sent in a section (llsd map) OpenSimExtras, so it is easily identified by viewers.
  
 
== Configuration ==
 
== Configuration ==
Some parameters are constant and defined in code. Others are defined by specific, some optional, modules
+
Some parameters are constant and defined in code. Others are defined by specific modules, some of which are optional. In fact, the SimulatorFeaturesModule itself is also optional.<br>
in fact, because reasons, this module is also optional.<br>
+
The facilities available via the module are also very dependent on the OpenSimulation version or flavor.
This are also very dependent on the OpenSimulation version or flavor.
+
This is a consequence of legacy decisions, unmanageable modularity and configurability, and blind selfish forking.
Consequence of legacy decisions, unmanageable modularity and configurability, and blind selfish forking.
+
More work is needed to provide consistency, in particular because some of this information is not optional at all if one likes to have viewers that work correctly.
More work is needed to provide consistence, in particular because some of this information is not optional at all if one likes to have viewers that do work.
+
  
 
+
A few examples on regions configuration:
=== OpenSim ===
+
 
+
OpenSimExtras items in particular are configured in several places through the code, even some modules may override what was defined by others.
+
a few examples
+
  
 
<source lang=ini>
 
<source lang=ini>
Line 43: Line 38:
 
   shout_distance = 100
 
   shout_distance = 100
 
</source>
 
</source>
 +
<br>Grid can send information to regions to override local settings, an example from Robust.HG.ini<br>
 +
<source lang=ini>
 +
[Hypergrid]
 +
;...
 +
  GatekeeperURI ="http://my.grid.host:9004"
 +
  GatekeeperURIAlias = "http://my.oldgrid.host:9004,http://my.localgrid.host:8003"
 +
...
 +
</source>
 +
 +
GatekeeperURI  will be sent as GridURL and GatekeeperURIAlias as GridURLAlias, in section OpenSimExtras<br>
 +
 +
<br><b>WARNING</b> the information sent about current region grid is only to help viewers to identify grid changes and identify if a url points to a local region or a region on another grid. This information should not be used to replace any permanent information, like information used by viewers grid manager. The Authority for permanent grid information is the Grid service, not regions. The region information may even be incorrect since many regions are configured by end users with little skills restling with the current over complex OpenSimulator configuration<br>
 +
 +
== Example of data sent to viewer (dev 0.9.2 version) ==
 +
<source lang="xml">
 +
<llsd><map>
 +
  <key>MeshRezEnabled</key><boolean>1</boolean>
 +
  <key>MeshUploadEnabled</key><boolean>1</boolean>
 +
  <key>MeshXferEnabled</key><boolean>1</boolean>
 +
  <key>BakesOnMeshEnabled</key><boolean>1</boolean>
 +
  <key>PhysicsMaterialsEnabled</key><boolean>1</boolean>
 +
  <key>PhysicsShapeTypes</key><map>
 +
      <key>convex</key><boolean>1</boolean>
 +
      <key>none</key><boolean>1</boolean>
 +
      <key>prim</key><boolean>1</boolean>
 +
    </map>
 +
  <key>LSLSyntaxId</key><uuid>0ca3945b-ad46-5155-6d66-6b6c74370dd2</uuid>
 +
  <key>AnimatedObjects</key><map>
 +
      <key>AnimatedObjectMaxTris</key><integer>150000</integer>
 +
      <key>MaxAgentAnimatedObjectAttachments</key><integer>2</integer>
 +
    </map>
 +
  <key>MaxAgentAttachments</key><integer>38</integer>
 +
  <key>MaxAgentGroupsBasic</key><integer>60</integer>
 +
  <key>MaxAgentGroupsPremium</key><integer>60</integer>
 +
  <key>OpenSimExtras</key><map>
 +
      <key>AvatarSkeleton</key><boolean>1</boolean>
 +
      <key>AnimationSet</key><boolean>1</boolean>
 +
      <key>MinSimHeight</key><real>-100</real>
 +
      <key>MaxSimHeight</key><real>50000</real>
 +
      <key>MinHeightmap</key><real>-100</real>
 +
      <key>MaxHeightmap</key><real>4000</real>
 +
      <key>currency-base-uri</key><string>http://my.grid.host:9000/</string>
 +
      <key>map-server-url</key><string>http://my.grid.host:9004/</string>
 +
      <key>GridStatus</key><string>http://my.grid.host:9004/GridStatus</string>
 +
      <key>GridStatusRSS</key><string>http://my.grid.host:9004/GridStatusRSS</string>
 +
      <key>ExportSupported</key><string>true</string>
 +
      <key>SimulatorFPS</key><real>11.001100540161133</real>
 +
      <key>SimulatorFPSFactor</key><real>4.9994997978210449</real>
 +
      <key>SimulatorFPSWarnPercent</key><integer>60</integer>
 +
      <key>SimulatorFPSCritPercent</key><integer>40</integer>
 +
      <key>MinPrimScale</key><real>0.0010000000474974513</real>
 +
      <key>MaxPrimScale</key><real>1024</real>
 +
      <key>MinPhysPrimScale</key><real>0.0099999997764825821</real>
 +
      <key>MaxPhysPrimScale</key><real>64</real>
 +
      <key>GridName</key><string>testgridLocal</string>
 +
      <key>GridNick</key><string>testgridLocal</string>
 +
      <key>GridURL</key><string>http://my.grid.host:9004</string>
 +
      <key>GridURLAlias</key><string>http://my.oldgrid.host:9004,http://my.localgrid.host:8003</string>
 +
      <key>search-server-url</key><string>http://my.grid.host:9004/</string>
 +
      <key>destination-guide-url</key><string>http://my.grid.host:80/guide</string>
 +
      <key>say-range</key><integer>20</integer>
 +
      <key>whisper-range</key><integer>10</integer>
 +
      <key>shout-range</key><integer>100</integer>
 +
    </map>
 +
  <key>AvatarHoverHeightEnabled</key><boolean>1</boolean>
 +
  <key>menus</key><map>
 +
      <key>agent</key><map>
 +
        </map>
 +
      <key>world</key><map>
 +
        </map>
 +
      <key>tools</key><map>
 +
        </map>
 +
      <key>advanced</key><map>
 +
        </map>
 +
      <key>admin</key><map>
 +
        </map>
 +
    </map>
 +
  <key>MaxMaterialsPerTransaction</key><integer>50</integer>
 +
  <key>RenderMaterialsCapability</key><real>3</real>
 +
</map></llsd>
 +
 +
</source>
 +
 +
Note that other set of region modules, Money modules for example, may add more entries

Revision as of 10:24, 18 December 2020

This information is based on the current OpenSim development version. This has changed over time, occasionally in incoherent ways.

SimulatorFeaturesModule Overview

The SimulatorFeaturesModule provides support to the mechanism by which client programs (viewers) request information about some features or properties of a region, for example Bakes on Mesh (BOM) support, version of LSL/OSSL syntax, etc.
Viewer should ask for this information every time they see a new region. Unfortunately some of this may require that the viewer already created an avatar on that region. This information is sent via HTTP with llsd xml encoding.
Some information specific to OpenSimulator is sent in a section (llsd map) OpenSimExtras, so it is easily identified by viewers.

Configuration

Some parameters are constant and defined in code. Others are defined by specific modules, some of which are optional. In fact, the SimulatorFeaturesModule itself is also optional.
The facilities available via the module are also very dependent on the OpenSimulation version or flavor. This is a consequence of legacy decisions, unmanageable modularity and configurability, and blind selfish forking. More work is needed to provide consistency, in particular because some of this information is not optional at all if one likes to have viewers that work correctly.

A few examples on regions configuration:

[SimulatorFeatures]
 
   ; Override search service url
   SearchServerURI = "url to search service"
 
   ; Override destination guide url
   DestinationGuideURI = "url to destination guide"
 
   ; Override map service url
   ;(this may be set in one of several other locations, but we can use this to be consistent)
   MapTileURL = "url to map service"
 
[Chat]
 
   ; Distance in meters that ordinary chat should travel.  Default is 20m
   say_distance = 20
   ; Controls whether the chat module is enabled.  Default is true.
   enabled = true;
   ; Distance in meters that whispers should travel.  Default is 10m
   whisper_distance = 10
   ; Distance in meters that shouts should travel.  Default is 100m
   shout_distance = 100


Grid can send information to regions to override local settings, an example from Robust.HG.ini

[Hypergrid]
;...
  GatekeeperURI ="http://my.grid.host:9004"
  GatekeeperURIAlias = "http://my.oldgrid.host:9004,http://my.localgrid.host:8003"
...

GatekeeperURI will be sent as GridURL and GatekeeperURIAlias as GridURLAlias, in section OpenSimExtras


WARNING the information sent about current region grid is only to help viewers to identify grid changes and identify if a url points to a local region or a region on another grid. This information should not be used to replace any permanent information, like information used by viewers grid manager. The Authority for permanent grid information is the Grid service, not regions. The region information may even be incorrect since many regions are configured by end users with little skills restling with the current over complex OpenSimulator configuration

Example of data sent to viewer (dev 0.9.2 version)

<llsd><map>
  <key>MeshRezEnabled</key><boolean>1</boolean>
  <key>MeshUploadEnabled</key><boolean>1</boolean>
  <key>MeshXferEnabled</key><boolean>1</boolean>
  <key>BakesOnMeshEnabled</key><boolean>1</boolean>
  <key>PhysicsMaterialsEnabled</key><boolean>1</boolean>
  <key>PhysicsShapeTypes</key><map>
      <key>convex</key><boolean>1</boolean>
      <key>none</key><boolean>1</boolean>
      <key>prim</key><boolean>1</boolean>
    </map> 
  <key>LSLSyntaxId</key><uuid>0ca3945b-ad46-5155-6d66-6b6c74370dd2</uuid>
  <key>AnimatedObjects</key><map>
      <key>AnimatedObjectMaxTris</key><integer>150000</integer>
      <key>MaxAgentAnimatedObjectAttachments</key><integer>2</integer>
    </map>
  <key>MaxAgentAttachments</key><integer>38</integer>
  <key>MaxAgentGroupsBasic</key><integer>60</integer>
  <key>MaxAgentGroupsPremium</key><integer>60</integer>
  <key>OpenSimExtras</key><map>
      <key>AvatarSkeleton</key><boolean>1</boolean>
      <key>AnimationSet</key><boolean>1</boolean>
      <key>MinSimHeight</key><real>-100</real>
      <key>MaxSimHeight</key><real>50000</real>
      <key>MinHeightmap</key><real>-100</real>
      <key>MaxHeightmap</key><real>4000</real>
      <key>currency-base-uri</key><string>http://my.grid.host:9000/</string>
      <key>map-server-url</key><string>http://my.grid.host:9004/</string>
      <key>GridStatus</key><string>http://my.grid.host:9004/GridStatus</string>
      <key>GridStatusRSS</key><string>http://my.grid.host:9004/GridStatusRSS</string>
      <key>ExportSupported</key><string>true</string>
      <key>SimulatorFPS</key><real>11.001100540161133</real>
      <key>SimulatorFPSFactor</key><real>4.9994997978210449</real>
      <key>SimulatorFPSWarnPercent</key><integer>60</integer>
      <key>SimulatorFPSCritPercent</key><integer>40</integer>
      <key>MinPrimScale</key><real>0.0010000000474974513</real>
      <key>MaxPrimScale</key><real>1024</real>
      <key>MinPhysPrimScale</key><real>0.0099999997764825821</real>
      <key>MaxPhysPrimScale</key><real>64</real>
      <key>GridName</key><string>testgridLocal</string>
      <key>GridNick</key><string>testgridLocal</string>
      <key>GridURL</key><string>http://my.grid.host:9004</string>
      <key>GridURLAlias</key><string>http://my.oldgrid.host:9004,http://my.localgrid.host:8003</string>
      <key>search-server-url</key><string>http://my.grid.host:9004/</string>
      <key>destination-guide-url</key><string>http://my.grid.host:80/guide</string>
      <key>say-range</key><integer>20</integer>
      <key>whisper-range</key><integer>10</integer>
      <key>shout-range</key><integer>100</integer>
    </map>
  <key>AvatarHoverHeightEnabled</key><boolean>1</boolean>
  <key>menus</key><map>
      <key>agent</key><map>
        </map>
      <key>world</key><map>
        </map>
      <key>tools</key><map>
        </map>
      <key>advanced</key><map>
        </map>
      <key>admin</key><map>
        </map>
    </map>
  <key>MaxMaterialsPerTransaction</key><integer>50</integer>
  <key>RenderMaterialsCapability</key><real>3</real>
</map></llsd>

Note that other set of region modules, Money modules for example, may add more entries

Personal tools
General
About This Wiki