2d 게임 스크롤을 하기위해 화면 사이즈보다 큰 텍스쳐를 만들어서
그곳에 렌더링 한다음 일정부분만 화면에 출력(uv값변경) 하려고 합니다
그런데 텍스쳐 800x600 공간에만 렌더링이되고 800x600 이상일때는 렌더링이
되지 않습니다 텍스쳐크기는 2048x2048입니다
도와주세요 ㅜㅜ
텍스쳐를 렌더타겟할때 일정부분만 렌더링 됩니다
Moderator: 류광
소스 입니다
// 텍스쳐 생성
if ( FAILED(D3DXCreateTexture( g_pd3dDevice,
2048, // 폭
2048, // 높이
0,
D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8
, D3DPOOL_DEFAULT, &m_pTexture )) )
{
MessageBox(NULL,_T("Create Map Error"),_T("Error"),0);
}
m_pTexture->GetSurfaceLevel(0, &m_pSurface);
g_pd3dDevice->SetRenderTarget(0,m_pSurface);
// 텍스쳐에 렌더링
for (DWORD y=0; y<TileYCount; y++)
{
for (DWORD x=0; x<TileXCount>SetRenderTarget(0,Old_pSurface);
// 백버퍼에 렌더링
FLOAT tx,ty,tw,th;
tx = 0;
ty = 0;
tw = 1;
th = 1;
static P3TVERTEX v[4];
// 초기화
for(int i=0; i<4; i++ )
{
v.position.z = 1.0f;
v.rhw = 1.0f;
v.color = D3DCOLOR_XRGB(255,255,255);
}
v[0].position.x = 0.0f - 0.5f;
v[0].position.y = 0.0f - 0.5f;
v[1].position.x = 0.0f + ScreenWidth;
v[1].position.y = 0.0f;
v[2].position.x = 0.0f + ScreenWidth;
v[2].position.y = 0.0f + ScreenHeight;
v[3].position.x = 0.0f;
v[3].position.y = 0.0f + ScreenHeight;
v[0].tu0 = tx;
v[0].tv0 = ty;
v[1].tu0 = v[0].tu0 + tw;
v[1].tv0 = v[0].tv0;
v[2].tu0 = v[0].tu0 + tw;
v[2].tv0 = v[0].tv0 + th;
v[3].tu0 = v[0].tu0;
v[3].tv0 = v[0].tv0 + th;
g_pd3dDevice->SetFVF(P3TVERTEX::FVF);
g_pd3dDevice->SetTexture(0,m_pTexture);
g_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN , 2, v, sizeof(P3TVERTEX) );
사각형이 30*30 개가 찍혀야 되는데 17개에서 짤려서 나와요;;
if ( FAILED(D3DXCreateTexture( g_pd3dDevice,
2048, // 폭
2048, // 높이
0,
D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8
, D3DPOOL_DEFAULT, &m_pTexture )) )
{
MessageBox(NULL,_T("Create Map Error"),_T("Error"),0);
}
m_pTexture->GetSurfaceLevel(0, &m_pSurface);
g_pd3dDevice->SetRenderTarget(0,m_pSurface);
// 텍스쳐에 렌더링
for (DWORD y=0; y<TileYCount; y++)
{
for (DWORD x=0; x<TileXCount>SetRenderTarget(0,Old_pSurface);
// 백버퍼에 렌더링
FLOAT tx,ty,tw,th;
tx = 0;
ty = 0;
tw = 1;
th = 1;
static P3TVERTEX v[4];
// 초기화
for(int i=0; i<4; i++ )
{
v.position.z = 1.0f;
v.rhw = 1.0f;
v.color = D3DCOLOR_XRGB(255,255,255);
}
v[0].position.x = 0.0f - 0.5f;
v[0].position.y = 0.0f - 0.5f;
v[1].position.x = 0.0f + ScreenWidth;
v[1].position.y = 0.0f;
v[2].position.x = 0.0f + ScreenWidth;
v[2].position.y = 0.0f + ScreenHeight;
v[3].position.x = 0.0f;
v[3].position.y = 0.0f + ScreenHeight;
v[0].tu0 = tx;
v[0].tv0 = ty;
v[1].tu0 = v[0].tu0 + tw;
v[1].tv0 = v[0].tv0;
v[2].tu0 = v[0].tu0 + tw;
v[2].tv0 = v[0].tv0 + th;
v[3].tu0 = v[0].tu0;
v[3].tv0 = v[0].tv0 + th;
g_pd3dDevice->SetFVF(P3TVERTEX::FVF);
g_pd3dDevice->SetTexture(0,m_pTexture);
g_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN , 2, v, sizeof(P3TVERTEX) );
사각형이 30*30 개가 찍혀야 되는데 17개에서 짤려서 나와요;;