Makra
================================================================================

PASS = 0, 1, 2, 3, 4, 5, 6, 7, 8
Zawsze.
Rodzaj przebiegu - GWNA OPCJA!!!
0 = Z-Fill + Ambient + Emissive + Environmental Mapping
1 = Fog
2 = WireFrame - obiekty rysowane materiaem siatkowym WireFrameMaterial
3 = Translucent - obiekty rysowane materiaem pprzezroczystym TranslucentMaterial
4 = Directional - owietlenie wiatem Directional
5 = Point - wiato punktowe
6 = Spot - wiato Spot
7 = Shadow Map - renderowanie gbokoci do Shadow Mapy
8 = Terrain (rysuje ambient + directinal light + fog)

EMISSIVE = 0, 1
Warunek: PASS == 0 || PASS == 3
Czy wczony jest rysowany w tym przebiegu Emissive.

AMBIENT_MODE = 0, 1, 2
Warunek: PASS == 0 | PASS == 8
Tryb dziaania owietlenia Ambient.
0 = Brak owietlenia Ambient, rysuje si na czarno.
1 = Pene owietlenie Ambient, bez koloru.
    Czyli tak jakby AmbientColor=WHITE lub jakby encja nie podlegaa owietleniu.
2 = Jest Ambient, jest jego kolor przez ktry trzeba mnoy

DIFFUSE_TEXTURE = 0, 1
Warunek: PASS == 0 || PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7
Czy jest DiffuseTexture. Jeli 0, to zamiast tekstury jest DiffuseColor.

COLOR_MODE = 0, 1, 2
Warunek: PASS == 0 || PASS == 2 || PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6
Tryb przekolorowania materiau przez TeamColor encji.
PASS == 0 || PASS == 3:
  0 = MATERIAL - brak przekolorowania, kolor jest brany z Diffuse materiau
  1 = MODULATE - kolor Diffuse materiau jest mnoony przez TeamColor encji
  2 = LERP - kolor Diffuse materiau jest interpolowany do TeamColor encji na
      podstawie wartoci Alfa z Diffuse materiau
PASS == 2:
  0 = MATERIAL - brak przekolorowania, kolor jest brany z materiau
  1 = ENTITY - kolor jest brany w caoci z TeamColor encji
  2 = MODULATE - kolor i kana Alfa materiau jest mnoony przez TeamColor encji

TEXTURE_ANIMATION = 0, 1
Warunek: PASS == 0 || PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7
Czy jest animacja tekstury, czyli mnoenie wsp. tekstury przez macierz.

ENVIRONMENTAL_MAPPING = 0, 1
Warunek: PASS == 0 || PASS == 3
Czy jest w tym przebiegu rysowany dodatkowo Environmental Mapping.

ALPHA_TESTING = 0, 1
Warunek: PASS == 0 || PASS == 1 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7
Czy materia ma alfa-testing.
Ty czy naprawd wczany jest alfa-testing czy jest ustawiane ZFunc=EQUAL to
zaley od przebiegu i jest ustawiane poza FX-em.

USE_FOG = 0, 1
Warunek: PASS == 2 || PASS == 3 || PASS == 8
Czy uywa mgy przy okazji rysowania tego przeebigu.

ALPHA_MODE = 0, 1, 2
Warunek: PASS == 3
Tryb przekolorowania kanau Alpha z Diffuse materiau przez Alpha z TeamColor encji.
0 = MATERIAL - brak przekolorowania, alpha jest brana z materiau
1 = ENTITY - alpha jest brana w caoci z TeamColor encji
2 = MODULATE - Alpha materiau jest mnoony przez Alpha z TeamColor encji

FRESNEL_TERM = 0, 1
Warunek: PASS == 0 || PASS == 3
Czy Fresnel Term jest wczony.

HALF_LAMBERT = 0, 1
Warunek: PASS == 4 || PASS == 5 || PASS == 6
Czy dane owietlenie ma by liczone dla Diffuse metod Half-Lambert.

PER_PIXEL = 0, 1
Warunek: PASS == 4 || PASS == 5 || PASS == 6
Czy dane owietlenie jest Per Pixel.
Jeli nie, to jest Per Vertex.

NORMAL_TEXTURE = 0, 1
Warunek: (PASS == 4 || PASS == 5 || PASS == 6) && PER_PIXEL == 1
Czy jest tekstura Normal Mapy.
Jeli nie ma, wektor normalny sterczy zawsze w t sam stron.

SPECULAR = 0, 1, 2, 3
Warunek: PASS == 4 || PASS == 5 || PASS == 6
Tryb odblasku specular (odpowiada OpaqueMaterial::SPECULAR_MODE)
0 = NONE
1 = SPECULAR
2 = ANISO_TANGENT (PER_PIXEL == 1 && NORMAL_TEXTURE == 0)
3 = ANISO_BINORMAL (PER_PIXEL == 1 && NORMAL_TEXTURE == 0)

GLOSS_MAP = 0, 1
Warunek: (PASS == 4 || PASS == 5 || PASS == 6) && SPECULAR != 0
Czy jest gloss mapping.

SPOT_SMOOTH = 0, 1
Warunek: PASS == 6
Czy wiato zanika pynnie wraz z ktem ochylenia od kierunku.

SHADOW_MAP_MODE = 0, 1, 2
Warunek: PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7 || PASS == 8
Rodzaj Shadow Mapy.
0 = Brak shadow mappingu (tylko PASS == 7)
1 = wykorzystuje tylko kana R, ktry ma du dokadno
2 = wykorzystuje 3 kanay o maej dokadnoci - R, G, B, do ktrych trzeba pakowa gboko
    ma te kana alpha, to te mona robi Alpha Testing

VARIABLE_SHADOW_FACTOR = 0, 1
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && (SHADOW_MAP_MODE != 0)
W praktyce tylko PASS == 4
Czy Shadow Factor jest zmienny z odlegoci, nie stay.

POINT_SHADOW_MAP = 0, 1
Warunek: PASS == 7 || PASS == 5
Czy renderowana do Shadow Mapy ma by odlego a nie gboko, bo to jest
wiato punktowe.

SKINNING = 0, 1
Zawsze.
Czy jest Skinning stosowany do pozycji wierzchoka, jego Normal i ewentualnego
Tangent i Binormal.

TERRAIN = 0, 1
Warunek: ???
Czy rysowany jest specjalny materia terenu.


Parametry
================================================================================

WorldViewProj : float4x4
Zawsze.
Poczona macierz World * View * Projection.

EmissiveTexture : texture
Warunek: (PASS == 0 || PASS == 3) && EMISSIVE == 1
Tekstura uywana do Emissive.

DiffuseTexture : texture
Warunek:
  (PASS == 0 && DIFFUSE_TEXTURE == 1 && (AMBIENT_MODE != 0 || ALPHA_TESTING == 1)) ||
  ((PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7) && DIFFUSE_TEXTURE == 1)
Tekstura gwna Diffuse.

DiffuseColor : float4
Warunek:
  (PASS == 0 && AMBIENT_MODE != 0 && DIFFUSE_TEXTURE == 0) ||
  (PASS == 2)
  ((PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7) && DIFFUSE_TEXTURE == 0)
Jednolity kolor uywany zamiast tekstury Diffuse.

TeamColor : float4
Warunek:
  (PASS == 0 && AMBIENT_MODE != 0 && COLOR_MODE != 0) ||
  ((PASS == 2 || PASS == 4 || PASS == 5 || PASS == 6) && COLOR_MODE != 0) ||
  (PASS == 3 && (COLOR_MODE != 0 || ALPHA_MODE != 0))
Kolor pochodzcy od encji.

AmbientColor : float4
Warunek: (PASS == 0 || PASS == 8) && AMBIENT_MODE == 2
Kolor owietlenia Ambient.

TextureMatrix : float4x4
Warunek: (PASS == 0 || PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6 || PASS == 7) && TEXTURE_ANIMATION == 1
Macierz do przeksztacania wsp. tekstury.

CameraPos : float3
Warunek:
	(PASS == 0 || PASS == 3 || PASS == 4 || PASS == 5 || PASS == 6) &&
	(ENVIRONMENTAL_MAPPING == 1 || FRESNEL_TERM == 1 || SPECULAR != 0)
Pozycja kamery we wsp. lokalnych modelu.

EnvironmentalTexture : texture (CUBE)
Warunek: (PASS == 0 || PASS == 3) && ENVIRONMENTAL_MAPPING == 1
Tekstura szecienna do Environmental Mappingu.

FogColor : float4
Warunek:
  PASS == 1 ||
  ((PASS == 2 || PASS == 3 || PASS == 8) && USE_FOG == 1)
Kolor mgy.

FogFactors : float2
Warunek:
  PASS == 1 ||
  ((PASS == 2 || PASS == 3 || PASS == 8) && USE_FOG == 1)
Wspczynniki rwnania liniowego do intensywnoci mgy zalenej od Z = 0..1.
Rwnanie jest: FogIntensity = FogFactors.x * Z + FogFactors.y

FresnelColor : half4
Warunek: FRESNEL_TERM == 1
Kolor i jasno Fresnel Term.

FresnelPower : float
Warunek: FRESNEL_TERM == 1
Wykadnik Fresnel Term.

LightColor : half4
Warunek: PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8
Kolor danego wiata.

DirToLight : float3
Warunek: PASS == 4 || PASS == 6 || PASS == 8
Directional: Kierunek do wiata - zanegowany kierunek wiata kierunkowego.
Spot: Zanegowany kierunek wiecenia wiata Spot.

NormalTexture : texture
Warunek: (PASS == 4 || PASS == 5 || PASS == 6) && NORMAL_TEXTURE == 1
Tekstura Normal Map.

SpecularColor : half4
Warunek: (PASS == 4 || PASS == 5 || PASS == 6) && SPECULAR != 0
Kolor odblasku.

SpecularPower : float
Warunek: (PASS == 4 || PASS == 5 || PASS == 6) && SPECULAR != 0
Wykadnik odblasku.

LightPos : float3
Warunek: PASS == 5 || PASS == 6 || (PASS == 7 && POINT_SHADOW_MAP == 1)
Pozycja wiata we wsp. modelu.

LightRangeSq : float
Warunek: PASS == 5 || PASS == 6 || (PASS == 7 && POINT_SHADOW_MAP == 1)
Kwadrat zasigu wiata.

LightCosFov2 : half
Warunek: PASS == 6
Cosinus poowy kta rozchylenia snopa wiata typu spot.

LightCosFov2Factor : half
Warunek: PASS == 6 && SPOT_SMOOTH == 1
Wyliczany ze wzoru: 1 / (1 - LightCosFov2)

ShadowFactor : float
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0

ShadowFactorA : float
ShadowFactorB : float
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0 && VARIABLE_SHADOW_FACTOR == 1
Wspczynniki do rwnania liniowego zmiany ShadowFactor z odlegoci

ShadowMapTexture : texture
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0

ShadowMapMatrix : float4x4
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0
Macierz przeksztacajca pozycj ze wsp. modelu do wsp. shadow mapy.

ShadowMapSize : float
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0
Rozmiar shadow mapy w pikselach.

ShadowMapSizeRcp : float
Warunek: (PASS == 4 || PASS == 5 || PASS == 6 || PASS == 8) && SHADOW_MAP_MODE != 0
Rwny: 1 / ShadowMapSize

ShadowEpsilon : float
Warunek: PASS == 5 && SHADOW_MAP_PODE != 0

LightRangeSq_World : float
Warunek: PASS == 5 && SHADOW_MAP_MODE != 0
Zasig wiata Point w przestrzeni wiata - potrzebny do Shadow Mappingu.

BoneMatrices : float4x3 [32]
Warunek: SKINNING == 1
Macierze koci dla skinningu (animacji szkieletowej).
