Novetus_src/clients/2010L/content/materials/scripts/plastic.material

362 lines
6.0 KiB
Plaintext

vertex_program PlasticVP_med cg
{
source materials/programs/plastic_med.cgfx
profiles vs_1_1 arbvp1
entry_point plastic_vp_simple
default_params
{
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 AmbiColor ambient_light_colour
param_named_auto Lamp0Pos light_position 0
param_named_auto Lamp1Pos light_position 1
param_named_auto Lamp0Color light_diffuse_colour 0
param_named_auto Lamp1Color light_diffuse_colour 1
param_named Kr float 0.35
param_named FresnelMin float 0.05
}
}
fragment_program PlasticFP_med cg
{
source materials/programs/plastic_med.cgfx
entry_point plastic_fp_simple
profiles ps_2_0 arbfp1
default_params
{
param_named_auto Lamp0Color light_diffuse_colour 0
param_named Ks float 0.75
param_named SpecExpon float 81
}
}
vertex_program PlasticVP_high cg
{
source materials/programs/plastic_high.cgfx
profiles vs_1_1 arbvp1
entry_point plastic_vp_precise
default_params
{
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 Lamp0Pos light_position 0
param_named_auto Lamp1Pos light_position 1
}
}
fragment_program PlasticFP_high cg
{
source materials/programs/plastic_high.cgfx
entry_point plastic_fp_precise
profiles ps_2_0 arbfp1
default_params
{
param_named Ks float 0.75
param_named SpecExpon float 81
param_named_auto AmbiColor ambient_light_colour
param_named_auto Lamp0Color light_diffuse_colour 0
param_named_auto Lamp1Color light_diffuse_colour 1
// lerp Kr and FresnelMin towards 1,1 according to sqrt of reflection parameter (since they are multiplied)
// to emulate legacy style reflection paramter. reflection parameter expected to be [0..1] range.
// if you change these, remember to change matching hard-coded parameters in-engine (look for Kr and FresnelMin)
param_named Kr float 0.45
param_named FresnelMin float 0.05
param_named FresnelExp float 3.55
}
}
//todo: need a med and high quality studless once we decide to go with high fidelidty plastic.
material PlasticStudless
{
technique
{
pass
{
ambient vertexcolour
diffuse vertexcolour
specular 0.9 0.9 0.9 50
}
}
}
material PlasticStudlessTransparent : PlasticStudless
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
}
}
}
material PlasticStuds_Low : PlasticStudless
{
technique
{
pass
{
texture_unit
{
texture_alias StudsAlways
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 Plastic_Low : PlasticStudless
{
technique
{
pass
{
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 PlasticStuds_Med : PlasticStudless
{
technique
{
pass
{
max_lights 2
vertex_program_ref PlasticVP_med
{
}
fragment_program_ref PlasticFP_med
{
}
texture_unit
{
texture_alias StudsAlways
tex_coord_set 0
texture textures/SurfacesAlpha.png
filtering trilinear
}
}
}
}
material Plastic_Med : PlasticStudless
{
technique
{
pass
{
max_lights 2
vertex_program_ref PlasticVP_med
{
}
fragment_program_ref PlasticFP_med
{
}
texture_unit
{
texture_alias Studs
tex_coord_set 0
texture textures/SurfacesAlpha.png
filtering trilinear
}
}
}
}
material PlasticStuds_High : PlasticStudless
{
technique
{
lod_index 0
pass
{
max_lights 2
vertex_program_ref PlasticVP_high
{
}
fragment_program_ref PlasticFP_high
{
}
texture_unit
{
texture_alias StudsAlways
tex_coord_set 0
texture textures/SurfacesAlpha.png
filtering trilinear
}
texture_unit
{
texture_alias SkyBox
tex_coord_set 1
texture textures/penv.dds cubic
filtering trilinear
}
}
}
}
material Plastic_High : PlasticStudless
{
technique
{
lod_index 0
pass
{
max_lights 2
vertex_program_ref PlasticVP_high
{
}
fragment_program_ref PlasticFP_high
{
}
texture_unit
{
texture_alias Studs
tex_coord_set 0
texture textures/SurfacesAlpha.png
filtering trilinear
}
texture_unit
{
texture_alias SkyBox
tex_coord_set 1
texture textures/penv.dds cubic
filtering trilinear
}
}
}
}
material PlasticTransparent_Low : Plastic_Low
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
texture_unit
{
//ignore alpha from SurfaceAlpha.png. Use alpha from vertices.
alpha_op_ex source1 src_diffuse src_texture
}
}
}
}
material PlasticStudsTransparent_Low : PlasticStuds_Low
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
texture_unit
{
//ignore alpha from SurfaceAlpha.png. Use alpha from vertices.
alpha_op_ex source1 src_diffuse src_texture
}
}
}
}
material PlasticTransparent_Med : Plastic_Med
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
}
}
}
material PlasticStudsTransparent_Med : PlasticStuds_Med
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
}
}
}
material PlasticTransparent_High : Plastic_High
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
}
}
}
material PlasticStudsTransparent_High : PlasticStuds_High
{
technique
{
pass
{
scene_blend alpha_blend
depth_write off
}
}
}