Featured image of post 쉐이더 프로그래밍 기본공부 14

쉐이더 프로그래밍 기본공부 14

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

// 밖으로 갈수록 투명해지는 이펙트 쉐이더

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();
 }
}

Hugo로 만듦
JimmyStack 테마 사용 중