Material definition:
Code: Select all
vertex_program Cg_Reflector_VP cg
{
source Reflector.cg
entry_point Reflector_VP
profiles vs_2_0
default_params
{
param_named_auto worldViewProjMatrix worldviewproj_matrix
param_named_auto cameraPosition camera_position_object_space
}
}
fragment_program Cg_Reflector_FP cg
{
source Reflector.cg
entry_point Reflector_FP
profiles ps_2_0
}
material Reflector
{
technique
{
pass
{
vertex_program_ref Cg_Reflector_VP
{
}
fragment_program_ref Cg_Reflector_FP
{
}
texture_unit
{
cubic_texture FR.tga BR.tga LF.tga RT.tga UP.tga DN.tga separateUV
}
}
}
}
Code: Select all
void Reflector_VP
(
float4 position : POSITION,
float3 normal : NORMAL,
out float4 oPosition : POSITION,
out float3 oReflection : TEXCOORD0,
uniform float4x4 worldViewProjMatrix,
uniform float3 cameraPosition
)
{
oPosition = mul(worldViewProjMatrix, position);
oReflection = reflect(position - cameraPosition, normal);
}
void Reflector_FP
(
float3 reflection : TEXCOORD0,
out float4 oColour : COLOR,
uniform samplerCUBE cubeTexture
)
{
oColour = texCUBE(cubeTexture, reflection);
}