닫기버튼


상단 배너 영역


실시간댓글

[일반] 다이렉트 질문요 ㅠ

nlv140_41324 미네시마 | 2014-10-27 21:13

 

void ShadowDemo::drawTeapotShadow()
{
HR(gd3dDevice->SetRenderState(D3DRS_STENCILENABLE,    true));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILFUNC,      D3DCMP_EQUAL));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILREF,       0x0));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILMASK,      0xffffffff));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILWRITEMASK, 0xffffffff));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILZFAIL,     D3DSTENCILOP_KEEP));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILFAIL,      D3DSTENCILOP_KEEP));
    HR(gd3dDevice->SetRenderState(D3DRS_STENCILPASS,      D3DSTENCILOP_INCR)); 

// Position shadow.
D3DXVECTOR4 lightDirection(0.577f, -0.577f, 0.577f, 0.0f);
D3DXPLANE groundPlane(0.0f, -1.0f, 0.0f, 0.0f);

D3DXMATRIX S;
D3DXMatrixShadow(&S, &lightDirection, &groundPlane);

// Offset the shadow up slightly so that there is no
// z-fighting with the shadow and ground.
D3DXMATRIX eps;
D3DXMatrixTranslation(&eps, 0.0f, 0.001f, 0.0f);

// Save the original teapot world matrix.
D3DXMATRIX oldTeapotWorld = mTeapotWorld;

// Add shadow projection transform.
mTeapotWorld = mTeapotWorld * S * eps;

// Alpha blend the shadow.
HR(gd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, true));
HR(gd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA));
HR(gd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA));

drawTeapot();

// Restore settings.
mTeapotWorld = oldTeapotWorld;
HR(gd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, false));
HR(gd3dDevice->SetRenderState(D3DRS_STENCILENABLE,    false));
}

 

 

다이렉트는 아무리 이해 할려고 해도 안된닼ㅋ

 

451943_1414411961.png 

 

그림자가 저기 보이는 맵 밖으로 나가면 나간부분 그림자가 사라져야 되는걸 만들어야 하는데 나의 뇌론 안됨 도와주셈

nlv146_5667 미네시마
gold

145

point

5,346,566

프로필 숨기기

146

44%

최신순

게임조선 회원님들의 의견 (총 2개) ※ 새로고침은 5초에 한번씩 실행 됩니다.

새로고침

신고

nlv97 박훼훼 2014-10-27 21:23 0

다이어트인줄알았네;

신고

nlv140_41324 미네시마 작성자 2014-10-27 21:29 0

ㅋㅋㅋ 미치것넼

0/500자

목록 글쓰기 위로 로그인

커뮤니티 이슈 한줄 요약


게임조선 소개및 약관