System Vegetation (Content Creation): Difference between revisions

From Open Metaverse Wiki
(Created page with "''Opensimulator: Content Creators: Models: System Vegetation'' System vegetation is a special form of models intended to create plants with a lower streaming cost than those made from prims, sculpts or mesh. The nodels are generated by the viewer, mostly from predefined values and data stored in two xml files that are included in the viewer downlaod package. Only a few parameters are delivered from the server. This of course m...")
 
(Moving most of the content to the documentation section and leaving just practical tips.)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''[[Opensimulator]]: [[OpenSimulator Content Creators Home|Content Creators]]: Models: System Vegetation''
''[[Opensimulator]]: [[OpenSimulator Content Creators Home|Content Creators]]: Models: System Vegetation''


System vegetation is a special form of models intended to create plants with a lower streaming cost than those made from prims, sculpts or mesh. The nodels are generated by the viewer, mostly from predefined values and data stored in two xml files that are included in the viewer downlaod package. Only a few parameters are delivered from the server. This of course means that the load the plants put on the servers is all but negligible. This is however not quite true for the viewer. System vegetation is always farily simplistic and not likely any serious stress to any modern client computer. But even so, neither the code nor the mesh generated are well optimized.
Some practical tips how and why to use system vegetation on Opensimulator. See the [[System vegetation]] in the documentation section for more detailed information about the asset type.
 
System vegetation is a special form of procedural models intended to create plants with a lower streaming cost than those made from prims, sculpts or mesh. The models are generated by the viewer, mostly from predefined values and data stored in two xml files that are included in the viewer download package. Only a few parameters are delivered from the server. This of course means that the load the plants put on the servers is all but negligible. This is however not quite true for the viewer. System vegetation is always farily simplistic and not likely any serious stress to any modern client computer. But even so, neither the code nor the mesh generated are well optimized.


The main problem with system vegetation, however, is that it's way outdated. It was developed as early as 2002 and apart from the addition of one more ground coverage option it has never been updated. A lot has changed to computer graphics since then and although system vegetation isn't completely irrelevant most of the variants do not meet the expectations to visual quality people tend to have today.
The main problem with system vegetation, however, is that it's way outdated. It was developed as early as 2002 and apart from the addition of one more ground coverage option it has never been updated. A lot has changed to computer graphics since then and although system vegetation isn't completely irrelevant most of the variants do not meet the expectations to visual quality people tend to have today.


== Level of Detail ==
The LOD handling is not documented but trees (actual trees that is) have significant LOD reduction for their trunks whilst the branches/canopies don't seem to have any LOD reduction at all. Other plants do not seem to have any LOD simplification.
== Physics ==
System vegetation is always phantom.


== Variants ==
== Variants ==
There are two basic kinds of system vegetation "Trees" (really any single plants) and "Grass" (really any multi plant ground cover)
There are two basic kinds of system vegetation "Trees" (really any single plants) and "Grass" (really any multi plant ground cover).


=== Trees ===
=== Trees ===
A system tree is a single plant and there are 21 variants. Most of the names are self-explanatory:
A system tree is a single plant and there are 21 variants. Most of the names are self-explanatory:
* Pine 1
* '''Pine 1'''
* Oak - This is not actually an oak at all but a small maple with orange autumn leaves
* '''Oak''' This is not actually an oak at all but a small maple with orange autumn leaves.
* Tropical Bush 1 - Looks like some sort of palm shrub
* '''Tropical Bush 1''' Looks like some sort of palm shrub.
* Palm 1
* '''Palm 1'''
* Dogwood
* '''Dogwood'''
* Tropical Bush 2
* '''Tropical Bush 2'''
* Palm 2
* '''Palm 2'''
* Cypress 1 - Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
* '''Cypress 1''' Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
* Cypress 2 - Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
* '''Cypress 2''' Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
* Pine 2
* '''Pine 2'''
* Plumeria - A seriously oversized flowering shrub.
* '''Plumeria''' A seriously oversized flowering shrub.
* Winter Pine 1
* '''Winter Pine 1'''
* Winter Aspen
* '''Winter Aspen'''
* Winter Pine 2
* '''Winter Pine 2'''
* Eucalyptus
* '''Eucalyptus'''
* Fern
* '''Fern'''
* Eelgrass
* '''Eelgrass'''
* Sea Sword
* '''Sea Sword'''
* Kelp 1
* '''Kelp 1'''
* Beach Grass 1
* '''Beach Grass 1'''
* Kelp 2
* '''Kelp 2'''


== Grass ==
Not all "trees" have trunks and branches but for those that do, they are made from twisted cylinders with collapsed ends and nine vertices around the circumference. Foliage is made from several pairs of crossed panels.
A piece of system grass consists of 32 flat panels with a picture of some sort of vegetation on them. The panels will always be aligned with the system terrain and can not be moved vertically. Nor can the panels be resized, changing the vertical (z axis) size has no effect. Changing the horizontal (x and y axis) size will change the distance between the panels.


There are six (really only five) system grass variants:
In Second Life system trees are assigned a random size when rezzed, on opensim the nominal size is always 4x4x4 m. The actual size is smaller than the nominal one, for some variants considerably smaller. The plants can be resized in-world. In Second Life max size is 10x10x10 m on opensim it's the same limit as other objects (configurable in the server but 256x256x256 m as default).
* Grass 0 - Yellowish-green grass with straws.
* Grass 1 - Dense cluster of poorly masked grass.
* Grass 2 - For most practiucal pruposes identical to Grass 0. It uses the same texture but is slightly bigger.
* Grass 3 - Similar to Grass 1 but lighter color and bigger.
* Grass 4 - An "autumn variant" of Grass 0/Grass 2. Bigger and with reddish-brown colors
* undergrowth_1 - Small alder(?) shrubs


== Parameters ==
=== Grass ===
The parameters delivered by the server are type, location, scale and rotation.
A piece of system grass consists of 32 flat panels with a picture of some sort of vegetation on them. The panels will always be aligned with the system terrain and can not be moved vertically. Nor can the panels be resized; changing the vertical (z axis) scale has no effect and changing the horizontal (x and y axis) scale will change the distance between the panels.


The parameters stored in the XML files are
There are six (really only five) system grass variants:
* for trees:
* '''Grass 0''' Yellowish-green grass with straws.
** tree name
* '''Grass 1''' Dense cluster of poorly masked grass.
** species
* '''Grass 2''' For most practiucal pruposes identical to Grass 0. It uses the same texture but is slightly bigger.
** texture_id
* '''Grass 3''' Similar to Grass 1 but lighter color and bigger.
** droop
* '''Grass 4''' An "autumn variant" of Grass 0/Grass 2. Bigger and with reddish-brown colors
** twist
* '''undergrowth_1''' Small alder(?) shrubs.
** branches
** depth
** scale_step
** trunk_depth
** branch_length
** trunk_length
** leaf_scale
** billboard_scale
** billboard_ratio
** trunk_aspect
** branch_aspect
** leaf_rotate
** noise_mag
** noise_scale
** taper
** repeat_z
* for grass:
** name
** species_id
** texture_id
** blade_size_x
** blade_size_y
All other parameters are predefined and can not be altered.


== Creating System Vegetation ==
== Creating System Vegetation ==
Technically it's very easy to create new system vegetation variants although since there is no documentation it make take a bit of trial and error, especially to figure out the UV mapping for the trees.
Technically it's very easy to create new system vegetation variants although since there is no documentation it make take a bit of trial and error, especially to figure out the exact UV mapping for the tree foliage.


This is not recommended, however, since any new variants will have to be added to the XML files for the viewers of everybody who are supposed to see them. If a viewer comes across a variant it doesn't recognise, it will render it as a Pine 1 for trees or Grass 0 for grass.
To add your new plant(s) to your viewer, simply add the data to the appropriate xml file and it will show up both it the list of options in the build window and in-world. However, it will only show up in viewers that has the same modified xml files so this is not recommended unless it is for a private place with no visitors. If a viewer comes across a variant it doesn't recognise, it will render it as a Pine 1 for trees or Grass 0 for grass.

Latest revision as of 00:24, 13 June 2023

Opensimulator: Content Creators: Models: System Vegetation

Some practical tips how and why to use system vegetation on Opensimulator. See the System vegetation in the documentation section for more detailed information about the asset type.

System vegetation is a special form of procedural models intended to create plants with a lower streaming cost than those made from prims, sculpts or mesh. The models are generated by the viewer, mostly from predefined values and data stored in two xml files that are included in the viewer download package. Only a few parameters are delivered from the server. This of course means that the load the plants put on the servers is all but negligible. This is however not quite true for the viewer. System vegetation is always farily simplistic and not likely any serious stress to any modern client computer. But even so, neither the code nor the mesh generated are well optimized.

The main problem with system vegetation, however, is that it's way outdated. It was developed as early as 2002 and apart from the addition of one more ground coverage option it has never been updated. A lot has changed to computer graphics since then and although system vegetation isn't completely irrelevant most of the variants do not meet the expectations to visual quality people tend to have today.


Variants

There are two basic kinds of system vegetation "Trees" (really any single plants) and "Grass" (really any multi plant ground cover).

Trees

A system tree is a single plant and there are 21 variants. Most of the names are self-explanatory:

  • Pine 1
  • Oak This is not actually an oak at all but a small maple with orange autumn leaves.
  • Tropical Bush 1 Looks like some sort of palm shrub.
  • Palm 1
  • Dogwood
  • Tropical Bush 2
  • Palm 2
  • Cypress 1 Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
  • Cypress 2 Not really a cypress. The texture used for the foliage is from a cypress but the canopy shape is typical for genereic hardwood trees and not like any common type of cypress.
  • Pine 2
  • Plumeria A seriously oversized flowering shrub.
  • Winter Pine 1
  • Winter Aspen
  • Winter Pine 2
  • Eucalyptus
  • Fern
  • Eelgrass
  • Sea Sword
  • Kelp 1
  • Beach Grass 1
  • Kelp 2

Not all "trees" have trunks and branches but for those that do, they are made from twisted cylinders with collapsed ends and nine vertices around the circumference. Foliage is made from several pairs of crossed panels.

In Second Life system trees are assigned a random size when rezzed, on opensim the nominal size is always 4x4x4 m. The actual size is smaller than the nominal one, for some variants considerably smaller. The plants can be resized in-world. In Second Life max size is 10x10x10 m on opensim it's the same limit as other objects (configurable in the server but 256x256x256 m as default).

Grass

A piece of system grass consists of 32 flat panels with a picture of some sort of vegetation on them. The panels will always be aligned with the system terrain and can not be moved vertically. Nor can the panels be resized; changing the vertical (z axis) scale has no effect and changing the horizontal (x and y axis) scale will change the distance between the panels.

There are six (really only five) system grass variants:

  • Grass 0 Yellowish-green grass with straws.
  • Grass 1 Dense cluster of poorly masked grass.
  • Grass 2 For most practiucal pruposes identical to Grass 0. It uses the same texture but is slightly bigger.
  • Grass 3 Similar to Grass 1 but lighter color and bigger.
  • Grass 4 An "autumn variant" of Grass 0/Grass 2. Bigger and with reddish-brown colors
  • undergrowth_1 Small alder(?) shrubs.

Creating System Vegetation

Technically it's very easy to create new system vegetation variants although since there is no documentation it make take a bit of trial and error, especially to figure out the exact UV mapping for the tree foliage.

To add your new plant(s) to your viewer, simply add the data to the appropriate xml file and it will show up both it the list of options in the build window and in-world. However, it will only show up in viewers that has the same modified xml files so this is not recommended unless it is for a private place with no visitors. If a viewer comes across a variant it doesn't recognise, it will render it as a Pine 1 for trees or Grass 0 for grass.