Vegetation

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)
This article or section is a stub. You can help by expanding it.
Various vegetation types working in tandem in Prison Island.

Plants/Vegetation is a common type of prop asset used in environment art, set dressing and level design.

Types of Vegetation

In nature plants evolved to grow in different forms to fill gaps (niche) in their local environment (habitat). In a forest for example a vine grows up a tree to reach light that is less available on the ground.

Vegetation Types:

  • Canopy (Largest trees)
  • Mid story (Small trees, large shrubs)
  • Understory (shrubs)
  • Ground cover (Vines, grasses, herbs)

See Stratification

Biomes

Some general Biome/habitat types include:

  • Forest
  • Rainforest/Jungle
  • Grassland
  • Wetland/Swamp
  • Alpine
  • Desert

There are countless types of habitats which are determined by biogeographic factors and species composition. Habitats transition into eachother creating an intermediate zone comprising a mix of species from each habitat (Ecotone). A species can occur across multiple habitats with each population having separate behavior/adaptations suited for their local environment (Habit / Ecotype).

Modelling Techniques

Missing textures showing foliage alpha cards in csgo cs_insertion

Env Artists use a combination of geometry and textured 2d planes to hopefully create a believable presentation of a the plant they are aiming to create.

Geometry / Mesh
Comprises the thick section of a plant such as the trunk and large branches.
Alpha Cards / Warpboards / Sprites
Double sided "non-manifold" textured mesh with alpha mask (Combined leaf and twig segments, large leaves with undulating leaf margins ie. Aroids, etc).
Billboards / Imposter Cards
Double sided 2D textured plane with alpha mask (similar to Sprite Cards in Particles). Planes can be fixed or camera facing (with particle system). Fixed planes are incrementally rotated (2 = 90°, 4 = 45°, etc.) around Z Axis. (Grass, herbs and low LOD↓ levels of larger plants).
Warning.pngRisk of Confusion: The term billboard technically refers to the camera facing vertical planes but can be used interchangeably with alpha cards, ie. Billboard Clouds.
Billboard Clouds
Asymmetrical technique of "billboarding" that maximizes viewable angles of a structure while minimizing the amount of billboards use (Leaf clusters, bushes, etc.).
Shell Texturing
A technique of stacking cards above one another to create the appearance of noisy repetitive 3d geometry (ie, short grass) over large areas. The technique can be very resource intensive due to pixel overdraw though in certain cases it may be more performant than using a lot of smaller models that could have cumulatively high amount of geometry.

Materials

A typical tree will usually have two materials on it, one for the leaves and one for the bark. The Leaf material consist of a texture atlas that has spaced out varying sections of small twig and leaf segments possibly with flowers and/or fruits. The Bark materials is a tileable texture that is repeated across the trunk mesh. Trimsheets can be implemented to create scratches, knots, hollows or other rarely repeated features. Small plants and shrubs will usually only have a leaf atlas.

Leaves
Leaf Atlas
A technique of UV mapping where variations of twig and leaf sections are evenly spaced in a grid used for quick adjustments to UV Maps. It is important to have enough spacing to avoid unwanted overlap with neighboring tiles when reducing geometry for LODs↓, and downsampling color bleed in Mipmaps.
Todo: example image
Bark
Tiled Texture
Trimsheet
Todo: example image


Shaders

  • Todo:  basic info how shaders interact with textures
  • Todo:  info of types of shaders relating to foliage in Source engines

Textures

Diffuse
RGB color image of the flat shaded plant. The background layer should have no opacity and roughly match the color of the border of the plant parts to prevent issues with alpha sampling, such as darken edges (See alpha dilation).
Alpha
A 1 bit image, white = 1, black = 0. White renders corresponding pixels on other texture maps, black renders nothing.
Icon-Important.pngImportant: Make sure all RGBA values are 0, any value other than 0, even the alpha value will be interpreted as white.
Tip.pngTip: Alpha map can easily be created in a image manipulating program such as GIMP by using Select > Select By Color and selecting the transparent area of the diffuse texture then use Select > Grow by 1-2px and painting the whole area black with 100% hardness pencil tool. Next invert the selection by going Select > Invert and paint the area white.


Other common types of atlas types include: texture, hair, sprite & particle.

Animation

see UV section of Animation

Skins

Todo:  creating variants/seasonal changes

Decals

  • Todo: vines, fallen leaves/mulch piles

Animation

UV
[Todo]
Material
$treesway – Family of material parameters for the VertexLitGeneric shader that morphs the vertices of a mesh with that given material around. The env_wind entity sets the amplitude for values used by the shader. [confirm]
Todo:  cloud shadows
vertex colors
[Todo]

Particles

  • Todo:  falling leaves
  • Todo:  billboards

LODs

Common Issues

Aliasing

[Todo]

Performance

  • Todo:  Overdraw
  • Todo:  Instancing
  • Todo:  culling

Lighting

  • Todo: Transfer vertex normals

Resources

At the end of the video they recommend:
Tree_It
Tree Generator. Free version on dev's website, has a couple missing features to the steam version.
Plant Factory
Tree generator made freeware as of 2024 (Note.pngNote:: Website in firefox is bugged).

Other Wikis

See Also