라이트 영향을 받지 않고 (이펙트니까)
간단하게 텍스쳐만 입힐수 있도록 제작.
외각으로 갈 수록 투명해지는 것은 그대로.
훨씬 코드가 짧아졌다.

// 밖으로 갈수록 투명해지는 이펙트 쉐이더
float4x4 WorldViewProj : WORLDVIEWPROJ ;
float4x4 World : WORLD ;
float4x4 ViewI : VIEWI ;
texture2D basetexture : DIFFUSE
<
string UIName = “Basetexture”;
int Texcoord = 0;
int MapChannel = 1;
;
sampler2D BaseSampler = sampler_state
{
texture = ;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
};
void VS
(
in float4 iPos : POSITION,
in float4 iNormal : NORMAL,
in float3 itex : TEXCOORD0,
out float4 oPos : POSITION,
out float3 otex : TEXCOORD0,
out float1 Opacity : TEXCOORD1
)
{
float4 WorldPos = mul(iPos , World) ;
float3 oNormal = normalize(mul(iNormal,(float3x3)World));
float3 ViewDirection = normalize ( ViewI[3].xyz - WorldPos.xyz );
Opacity = dot(ViewDirection,oNormal);
oPos = mul(iPos, WorldViewProj);
otex = itex;
}
void PS
(
in float3 itex : TEXCOORD0,
in float1 Opacity : TEXCOORD1,
out float4 oColor : COLOR
)
{
float3 otex = tex2D(BaseSampler, itex);
oColor = float4(otex.rgb ,Opacity);
}
technique jp13
{
pass p0
{
Vertexshader = compile vs_2_0 VS();
Pixelshader = compile ps_2_0 PS();
}
}