Home  Xtrees are simple shapes for tracks. 

Introduction
When making tracks you often want to add trees. Sometimes lots of them. An oftenused technique for this is to use socalled Xtrees, which references to the fact that from the top they look like an 'X' symbol. An example from Carlswood is shown below:
3D geometry of each X tree
These trees may look as though they're built from 2 quads, but in fact it's really 4. Each quad is in fact 2 triangles, so this comes upto 8 triangles per X tree. Each side is modeled twice; one for the front side, and one for the backside. This is needed for the normal to point in the right direction; if you would just use 'cull=none' in the track's shader file (track.shd) the normal would point the wrong direction for one of the two sides. So create 2 polygons and just leave culling to its default (=back). This allows the Cg shaders for X trees to calculate appropriate normals for the tree pixels, based on its geometric normal and the flow along the tree texture.
Take care of the UV (texture) coordinates; the vertical coordinates should run from 0 (bottom) to 1 (top), and the horizontal coordinates from 0 (left) to 1 (right). This is needed to fake a normal across the polygon which simulates a cylinderlike tree shape.
Shading of Xtrees
Regular shading of these Xtrees would seriously expose the way they are built (2 simple polygons, or 4 visible triangles). See the example below for bad shading based on the regular triangle normals:
To rectify this, use the standard_xtree_v.cg and standard_xtree_f.cg shaders in your track.shd.
vf_xtree
{
vertex_shader
{
file=standard_xtree_v.cg
}
fragment_shader
{
file=standard_xtree_f.cg
}
} ... shader_tree1~vf_xtree
{
layer0
{
map=tree1.tga
alpha_to_coverage=1
alphafunc=gequal 128 depthwrite=1
}
}
This leads to the following image:
(last updated November 13, 2012 )