Thursday, November 29, 2007

Splatting material in Ogre

Am lucrat 2 zile si doua nopţi pana am reuşit sa înţeleg si sa implementez splatting textures in Ogre. Totul părea simplu la început dar nicicum nu am reuşit sa-l adaptez la terrain scene manager-ul simplu. Iata câteva screenshoturi, după care am sa postez fişierul de material.













material robisplat
{

lod_distances 300

technique
{
lod_index 0
pass
{
// Base Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
texture_unit
{
// Base Texture
texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex modulate src_current src_texture
}
}
pass
{
// Snow Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Snow Alpha map
texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Snow Splat
texture splatting0.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.01 0.01
}
}
pass
{
// Sand Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Sand Alpha map
texture texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Sand Splat
texture splatting1.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.03 0.03
}
}
pass
{
// Grass Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Grass Alpha map
texture texture alpha_Alpha2.dds
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Grass Splat
texture splatting_rock.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.02 0.02
}
}
pass
{
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Rock Alpha map
texture alpha_Alpha1.dds
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Rock Splat
texture splatting5.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.01 0.01
}

}



}

technique {
lod_index 1
pass
{
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
texture_unit
{
// Base Texture
texture tree1leaves.png
scale 1 1
tex_address_mode clamp
}
}
}

}




No comments: