Vegetation
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
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).
Risk 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.
- Bark
-
- Tiled Texture
- Trimsheet
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.
Important: Make sure all RGBA values are 0, any value other than 0, even the alpha value will be interpreted as white.
Tip: 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
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
How game developers create foliage - General overview.
Foliage Art: an interesting specialty within Environment Art - More detailed overview.
Mastering Foliage Art for Games: Pipeline Breakdown with Live Demos - Detailed workflow for creating vegetation, uses some paid software but concepts can be relevant to other programs.
- 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:: Website in firefox is bugged).
- At the end of the video they recommend: