[3D]안녕하세요 몇일고민해서 올립니다 부탁드려요
칸나
몇일을 고민해봤는데 이 문제는 잘 안풀리네요
제생각인데 1번그림은 카메라가보는시점에서 뒤에거하고 색깔이 혼합이 안되는것을 봤습니다.
2번그림으로 카메라를 반바퀴돌면 뒤에 나무랑 색깔이 겹쳐지더군요
마지막나무만 색깔이 겹처지는 것을봤을때 처음도 같이 겹쳐진 색깔로 나타낼려고할려고하는데 어떻게하는 방법이 있을가요?
/*
D3DXMATRIX matWorld;
D3DXMatrixIdentity( &matWorld);
m_pd3dDevice-SetTransform(D3DTS_WORLD, &matWorld);
*/
//알파값추출해주는것이다.
m_pd3dDevice-SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE);
//SrcColor * SrcAlphaValue + DestColor * (1.0f - SrcAlphaValue)
m_pd3dDevice-SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
m_pd3dDevice-SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);for( DWORD i = 0; i 67;i++)//67개의 나무
{
if(i = 16)//17개씩
{
//오브젝트 이동
m_matBillboardMatrix._41 = -1050.0f;//좌표 이동값//1000이 각마을 최대값이다.
m_matBillboardMatrix._42 = 0.0f;
m_matBillboardMatrix._43 = (float)i *120-1000;
}
if(i 16 && i = 33)
{
m_matBillboardMatrix._41 = (float)(i-16) *120-1120;//좌표 이동값//1000이 각마을 최대값이다.
m_matBillboardMatrix._42 = 0.0f;
m_matBillboardMatrix._43 = 1050;
}
if(i 33 && i = 50)
{
m_matBillboardMatrix._41 = 1050.0f;//좌표 이동값//1000이 각마을 최대값이다.
m_matBillboardMatrix._42 = 0.0f;
m_matBillboardMatrix._43 = (float)(i-33) *120-1120;
}
if(i 50 && i = 67)
{
m_matBillboardMatrix._41 = (float)(i-50) *120-1120;//좌표 이동값//1000이 각마을 최대값이다.
m_matBillboardMatrix._42 = 0.0f;
m_matBillboardMatrix._43 = -1050;
}
m_pd3dDevice-SetTransform( D3DTS_WORLD, &m_matBillboardMatrix);
m_pd3dDevice-SetTexture(0, TreeTexture[randomtree[i]]);
m_pd3dDevice-SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3dDevice-SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
//주말에 합성그림 만들어보자.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
m_pd3dDevice-SetStreamSource( 0,TreeVB, sizeof( CUSTOMVERTEX ));
m_pd3dDevice-SetVertexShader( D3DFVF_CUSTOMVERTEX );
m_pd3dDevice-SetIndices( TreeIB, 0);
m_pd3dDevice-DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0,4 ,0, 2);
}
m_pd3dDevice-SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE);
-
화1이트
감사합니다