home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar 2005 April
/
Gamestar_72_2005-04_dvd.iso
/
Dema
/
Liquidator
/
Liquidator.tma
/
data
/
materials
/
parallax.fx
< prev
next >
Wrap
Text File
|
2004-12-24
|
2KB
|
39 lines
sampler2D g_samColorMap : register(s0); // decal ΓѬßΓπαá
sampler2D g_samHeightMap : register(s1); // ¬áαΓá óδß«Γ
sampler2D g_samColorMap1 : register(s2); // decal ΓѬßΓπαá
float4 parallax( float2 TexCoord : TEXCOORD0, // íẫóδÑ ΓѬßΓπα¡δÑ ¬««αñ¿¡áΓδ
float3 TexCoord1 : TEXCOORD1 // óÑ¬Γ«α «Γ óÑαΦ¿¡δ ¬ ú½áºπ ó tangent »α«ßΓαá¡ßΓóÑ
) : COLOR
{
// »ÑαÑó«ñ óδß«Γδ ó ñ¿á»áº«¡ «Γ -1.0f ñ« 1.0f
float fHeight = tex2D(g_samHeightMap,TexCoord).x * 2.0f - 1.0f;
// ¡«α¼á½¿ºáµ¿∩ óÑ¬Γ«αá ú½áºá
float3 fEye = normalize(TexCoord1);
// óδτ¿ß½Ñ¡¿Ñ óÑ¬Γ«αá ß¼ÑΘÑ¡¿∩ ¿ ¬«ααѬµ¿∩ íẫóδσ ΓѬßΓπα¡δσ ¬««αñ¿¡áΓ
float2 fOffset = fEye.xy * fHeight * 0.015f;
float2 fNewCoords = TexCoord.xy + fOffset;
// óδí«α¬á decal ΓѬΓπαδ »« ¡«óδ¼ ΓѬßΓπα¡δ¼ ¬««αñ¿¡áΓá¼
float4 ColorMap = tex2D(g_samColorMap,fNewCoords);
return ColorMap;
}
float4 parallax_blended( float2 TexCoord : TEXCOORD0, // íẫóδÑ ΓѬßΓπα¡δÑ ¬««αñ¿¡áΓδ
float3 TexCoord1 : TEXCOORD1 // óÑ¬Γ«α «Γ óÑαΦ¿¡δ ¬ ú½áºπ ó tangent »α«ßΓαá¡ßΓóÑ
) : COLOR
{
// »ÑαÑó«ñ óδß«Γδ ó ñ¿á»áº«¡ «Γ -1.0f ñ« 1.0f
float fHeight = tex2D(g_samHeightMap,TexCoord).x * 2.0f - 1.0f;
// ¡«α¼á½¿ºáµ¿∩ óÑ¬Γ«αá ú½áºá
float3 fEye = normalize(TexCoord1);
// óδτ¿ß½Ñ¡¿Ñ óÑ¬Γ«αá ß¼ÑΘÑ¡¿∩ ¿ ¬«ααѬµ¿∩ íẫóδσ ΓѬßΓπα¡δσ ¬««αñ¿¡áΓ
float2 fOffset = fEye.xy * fHeight * 0.015f;
float2 fNewCoords = TexCoord.xy + fOffset;
// óδí«α¬á decal ΓѬΓπαδ »« ¡«óδ¼ ΓѬßΓπα¡δ¼ ¬««αñ¿¡áΓá¼
float4 ColorMap = tex2D(g_samColorMap,fNewCoords);
float4 ColorMap1 = tex2D(g_samColorMap1,fNewCoords);
return lerp(ColorMap, ColorMap1, ColorMap1.w);
}