프로그래밍 2014. 4. 15. 21:17
728x90

 

반투명 셰이더 - 03

 

 

셰이더 코드는,

사각형에 텍스쳐를 입히는 코드이므로, 심플합니다.

 

 

- actor_pre.fx -

 

texture tex_src;
float _fAlpha = 0.5f; //0 ~ 1


//--------------------------------------------------------------------------------------
// Texture samplers
//--------------------------------------------------------------------------------------
sampler2D Samp_Tex_Src =
sampler_state
{
    Texture = <tex_src>;

 //4.0
    Filter=MIN_MAG_MIP_LINEAR;
 
    //AddressU = Wrap;
    //AddressV = Wrap;

};


//--------------------------------------------------------------------------------------
// VS_INPUT
//--------------------------------------------------------------------------------------
struct VS_INPUT
{
    float4 pos : POSITION;
 float4 diff : COLOR0;  
 float2 uv : TEXCOORD0;

};

 

struct VS_OUTPUT
{
    float4 pos : POSITION;
 float4 diff : COLOR0;     
 float2 uv : TEXCOORD0;

};

 

//--------------------------------------------------------------------------------------
// shader func
//--------------------------------------------------------------------------------------
VS_OUTPUT _VS( VS_INPUT _In )
{
 VS_OUTPUT Out = (VS_OUTPUT)0;

 Out.pos = _In.pos;
 Out.uv = _In.uv;
 Out.diff = _In.diff;
  
    return Out;
}

 

float4 _PS( VS_OUTPUT _In ) : COLOR
{
 float4 Out;

 Out = tex2D( Samp_Tex_Src, _In.uv ) * _In.diff;

 

 //배경은 투명상태....
 //픽셀검사 - draw 필요 없는 부분은 완전 투명하게

 if( Out.r < 0.001 && Out.g < 0.001 && Out.b < 0.001 )
 {
  Out *= 0.f;
 }
 else
 {
  //Out.a *= 0.5f;
  //Out *= 0.3f;
  Out.a = _fAlpha;
 }

 return Out;
}


technique Tech
{
    pass P0 //0
    {  
        VertexShader = compile vs_2_a _VS();
        PixelShader  = compile ps_2_a _PS();
    }
}

 

 

게임속,

처녀귀신에게 적용한 모습입니다.

cull mode 는 none 으로 한 것입니다.

 

 

 

 

 

 

 

 

ㅋㅋㅋ

처녀귀신 얼굴의 압박,,,,,,

 

 

겹쳐져 draw 되는 폴리곤없이,

깨끗하게 알파가 빠졌습니다.

 

 

오옷!

좋네요!

 

 

--------------------------------------------------------------

 

 

다른 작업하느라 놔두었다가,

 

다시 테스트를 해보니,

큰!

문제가 있습니다,,,,,

 

screen 좌표로 렌더링을 하니,,,

맵에서 가려져야 할 오브젝트에

가려지지 않습니다

 

ㅜㅜ

 

이런,,,,

생각해보니 당연한 것을,,,

 

 

 

728x90

'프로그래밍' 카테고리의 다른 글

BSP 트리 ( bsp tree ) - 01  (0) 2014.04.20
BSP 트리 ( bsp tree ) - 02  (0) 2014.04.20
반투명 쉐이더 - 02  (0) 2014.04.15
반투명 셰이더 - 01  (0) 2014.04.15
HDR LDR Bloom  (0) 2014.03.23
posted by BK dddDang
: