199 lines
4.1 KiB
Plaintext
199 lines
4.1 KiB
Plaintext
|
|
vertex_program mainVP cg
|
|
{
|
|
source materials/programs/grass.cgfx
|
|
profiles vs_1_1 arbvp1
|
|
entry_point NoiseVS
|
|
|
|
default_params
|
|
{
|
|
param_named_auto Lamp0Pos light_position 0
|
|
param_named_auto Lamp1Pos light_position 1
|
|
param_named_auto WorldITXf inverse_transpose_world_matrix
|
|
param_named_auto WorldXf world_matrix
|
|
param_named_auto ViewIXf inverse_view_matrix
|
|
param_named_auto WvpXf worldviewproj_matrix
|
|
param_named_auto WorldXf world_matrix
|
|
param_named NormMapScale float 0.1
|
|
param_named Transform3DNoiseCoordinates float 1
|
|
param_named FadeDistance float 133.33
|
|
}
|
|
}
|
|
|
|
|
|
fragment_program mainFP cg
|
|
{
|
|
source materials/programs/grass.cgfx
|
|
entry_point mainPSStuds
|
|
profiles ps_2_x
|
|
|
|
default_params
|
|
{
|
|
param_named_auto AmbiColor ambient_light_colour
|
|
param_named_auto Lamp0Color light_diffuse_colour 0
|
|
param_named_auto Lamp1Color light_diffuse_colour 1
|
|
param_named Ks float 0.1
|
|
param_named SpecExpon float 50
|
|
param_named NoiseScale float3 0.09 0.02 0.004
|
|
}
|
|
|
|
}
|
|
|
|
material Grass_Low
|
|
{
|
|
technique lod1
|
|
{
|
|
pass
|
|
{
|
|
// set ambient and diffuse colors to Lerp(WoodColor1, WoodColor2, MixedColorRatio)
|
|
// set specular to Lerp(Ks1, Ks2, MixedColorRatio) SpecExpo
|
|
|
|
ambient vertexcolour
|
|
diffuse vertexcolour
|
|
specular 0.1 0.1 0.1 50
|
|
// mimic current wood shader limitation
|
|
max_lights 2
|
|
|
|
texture_unit
|
|
{
|
|
texture_alias Studs
|
|
tex_coord_set 0
|
|
texture textures/surfacesAlpha.png
|
|
colour_op alpha_blend
|
|
//ignore alpha from SurfaceAlpha.png. Use fixed alpha. VERY IMPORTANT FOR OFF-SCREEN RENDERING!
|
|
alpha_op_ex source1 src_manual src_manual 1 1 1
|
|
filtering trilinear
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
material Grass_Med
|
|
{
|
|
|
|
technique LegacyFF_lod0
|
|
{
|
|
lod_index 0
|
|
pass
|
|
{
|
|
ambient vertexcolour
|
|
diffuse vertexcolour
|
|
specular 0.1 0.1 0.1 50
|
|
// mimic current Grass shader limitation
|
|
max_lights 2
|
|
|
|
texture_unit
|
|
{
|
|
tex_coord_set 1
|
|
texture textures/Grass_Texture_gray.jpg
|
|
filtering trilinear
|
|
colour_op_ex add_signed src_texture src_current
|
|
//ignore alpha from SurfaceAlpha.png. Use alpha from vertices (in this case, it is not set, so use manual 1.0). VERY IMPORTANT FOR OFF-SCREEN RENDERING!
|
|
alpha_op_ex source1 src_current src_manual 1.0 1.0 1.0
|
|
transform 0.1 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 1
|
|
}
|
|
|
|
texture_unit
|
|
{
|
|
texture_alias Studs
|
|
tex_coord_set 0
|
|
texture textures/surfacesAlpha.png
|
|
colour_op alpha_blend
|
|
//ignore alpha from SurfaceAlpha.png. Use fixed alpha. VERY IMPORTANT FOR OFF-SCREEN RENDERING!
|
|
alpha_op_ex source1 src_manual src_manual 1 1 1
|
|
|
|
filtering trilinear
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
material Grass_High
|
|
{
|
|
lod_distances 320.0
|
|
|
|
technique Procedural_lod0
|
|
{
|
|
scheme Default
|
|
lod_index 0
|
|
|
|
pass
|
|
{
|
|
max_lights 2
|
|
|
|
vertex_program_ref mainVP
|
|
{
|
|
}
|
|
|
|
fragment_program_ref mainFP
|
|
{
|
|
|
|
}
|
|
|
|
texture_unit
|
|
{
|
|
texture_alias Studs
|
|
tex_coord_set 0
|
|
texture textures/SurfacesAlpha.png
|
|
filtering trilinear
|
|
}
|
|
|
|
texture_unit
|
|
{
|
|
tex_coord_set 1
|
|
texture textures/noiseL8_32x32x32.dds 3d
|
|
filtering trilinear
|
|
tex_address_mode wrap wrap wrap
|
|
}
|
|
texture_unit
|
|
{
|
|
tex_coord_set 2
|
|
texture textures/Grass_Texture.jpg
|
|
filtering trilinear
|
|
}
|
|
texture_unit
|
|
{
|
|
tex_coord_set 3
|
|
texture textures/dirt.jpg
|
|
filtering trilinear
|
|
}
|
|
texture_unit
|
|
{
|
|
tex_coord_set 4
|
|
texture textures/Grass_Normal.dds
|
|
filtering trilinear
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
technique lod1
|
|
{
|
|
//high to med
|
|
lod_index 1
|
|
pass
|
|
{
|
|
ambient vertexcolour
|
|
diffuse vertexcolour
|
|
specular 0.1 0.1 0.1 50
|
|
// mimic current Grass shader limitation
|
|
max_lights 2
|
|
|
|
texture_unit
|
|
{
|
|
tex_coord_set 2
|
|
texture textures/Grass_Texture_gray.jpg
|
|
filtering trilinear
|
|
colour_op_ex add_signed src_texture src_current
|
|
//ignore alpha from SurfaceAlpha.png. Use alpha from vertices (in this case, it is not set, so use manual 1.0). VERY IMPORTANT FOR OFF-SCREEN RENDERING!
|
|
alpha_op_ex source1 src_current src_manual 1.0 1.0 1.0
|
|
transform 0.1 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|