2013-12-19 19:32:50 +01:00

243 lines
6.2 KiB
Plaintext

// Bump map with Parallax offset vertex program, support for this is required
vertex_program Examples/OffsetMappingVP cg
{
source OffsetMapping.cg
entry_point main_vp
profiles vs_1_1 arbvp1
}
// Bump map with parallax fragment program
fragment_program Examples/OffsetMappingFP cg
{
source OffsetMapping.cg
entry_point main_fp
profiles ps_2_0 arbfp1
}
// Bump map with parallax fragment program
fragment_program Examples/OffsetMappingPS asm
{
source OffsetMapping_specular.asm
// sorry, only for ps_1_4 and above:)
syntax ps_1_4
}
material Examples/OffsetMapping/Specular
{
// This is the preferred technique which uses both vertex and
// fragment programs, supports coloured lights
technique
{
// do the lighting and bump mapping with parallax pass
pass
{
// Vertex program reference
vertex_program_ref Examples/OffsetMappingVP
{
param_named_auto lightPosition light_position_object_space 0
param_named_auto eyePosition camera_position_object_space
param_named_auto worldViewProj worldviewproj_matrix
}
// Fragment program
fragment_program_ref Examples/OffsetMappingFP
{
param_named_auto lightDiffuse light_diffuse_colour 0
param_named_auto lightSpecular light_specular_colour 0
// Parallax Height scale and bias
param_named scaleBias float4 0.04 -0.02 1 0
}
// Normal + height(alpha) map
texture_unit
{
texture rockwall_NH.tga
tex_coord_set 0
}
// Base diffuse texture map
texture_unit
{
texture rockwall.tga
tex_coord_set 1
}
}
}
// This is the preferred technique which uses both vertex and
// fragment programs, supports coloured lights
technique
{
// do the lighting and bump mapping with parallax pass
pass
{
// Vertex program reference
vertex_program_ref Examples/OffsetMappingVP
{
param_named_auto lightPosition light_position_object_space 0
param_named_auto eyePosition camera_position_object_space
param_named_auto worldViewProj worldviewproj_matrix
}
// Fragment program
fragment_program_ref Examples/OffsetMappingPS
{
param_indexed_auto 0 light_diffuse_colour 0
param_indexed_auto 1 light_specular_colour 0
// Parallax Height scale and bias
param_indexed 2 float4 0.04 -0.02 1 0
}
// Normal + height(alpha) map
texture_unit
{
texture rockwall_NH.tga
tex_coord_set 0
}
// Base diffuse texture map
texture_unit
{
texture rockwall.tga
tex_coord_set 1
}
}
}
// Simple no-shader fallback
technique
{
pass
{
// Base diffuse texture map
texture_unit
{
texture rockwall.tga
}
}
}
}
// Single-pass offset mapping with shadows
vertex_program Examples/OffsetMappingIntegratedShadowsVPhlsl hlsl
{
source OffsetMapping.hlsl
entry_point integratedshadows_vp
target vs_2_0
}
vertex_program Examples/OffsetMappingIntegratedShadowsVPglsl glsl
{
source OffsetMappingVp.glsl
}
// Single-pass offset mapping with shadows
fragment_program Examples/OffsetMappingIntegratedShadowsFPhlsl hlsl
{
source OffsetMapping.hlsl
entry_point integratedshadows_fp
target ps_2_0
}
fragment_program Examples/OffsetMappingIntegratedShadowsFPglsl glsl
{
source OffsetMappingFp.glsl
default_params
{
// assign samplers as required by GLSL
param_named normalHeightMap int 0
param_named diffuseMap int 1
param_named shadowMap1 int 2
param_named shadowMap2 int 3
}
}
// Single-pass offset mapping with shadows
vertex_program Examples/OffsetMappingIntegratedShadowsVP unified
{
delegate Examples/OffsetMappingIntegratedShadowsVPhlsl
delegate Examples/OffsetMappingIntegratedShadowsVPglsl
}
// Single-pass offset mapping with shadows
fragment_program Examples/OffsetMappingIntegratedShadowsFP unified
{
delegate Examples/OffsetMappingIntegratedShadowsFPhlsl
delegate Examples/OffsetMappingIntegratedShadowsFPglsl
}
material Examples/OffsetMapping/IntegratedShadows
{
technique
{
// do the lighting and bump mapping with parallax pass
pass
{
// Vertex program reference
vertex_program_ref Examples/OffsetMappingIntegratedShadowsVP
{
param_named_auto lightPosition light_position_object_space 0
param_named_auto eyePosition camera_position_object_space
param_named_auto worldViewProj worldviewproj_matrix
param_named_auto spotDirection light_direction_object_space 0
param_named_auto lightPosition1 light_position_object_space 1
param_named_auto spotDirection1 light_direction_object_space 1
// shadow texture projections
param_named_auto worldMatrix world_matrix
param_named_auto texViewProj1 texture_viewproj_matrix 0
param_named_auto texViewProj2 texture_viewproj_matrix 1
}
// Fragment program
fragment_program_ref Examples/OffsetMappingIntegratedShadowsFP
{
param_named_auto lightDiffuse light_diffuse_colour 0
param_named_auto spotParams spotlight_params 0
param_named_auto lightDiffuse1 light_diffuse_colour 1
param_named_auto spotParams1 spotlight_params 1
// Parallax Height scale and bias
param_named scaleBias float4 0.04 -0.02 1 0
}
// Normal + height(alpha) map
texture_unit
{
texture rockwall_NH.tga
tex_coord_set 0
}
// Base diffuse texture map
texture_unit
{
texture rockwall.tga
tex_coord_set 1
}
// shadowmap 1
texture_unit
{
content_type shadow
}
// shadowmap 2
texture_unit
{
content_type shadow
}
}
}
}