/** * @brief 지형객체를 초기화한다. * @param pDev : 출력용 D3D디바이스 * @param pvfScale : 높이맵의 x,y,z값에 곱할 척도값(scale vector) * @param lpBMPFilename : 높이맵용 BMP파일명 * @param lpTexFilename : 출력용 D3D디바이스 */ HRESULT ZTerrain::Create( D3DXVECTOR3* pvfScale, const char* lpBMPFilename, const char* lpTEXFilename ) { if (pvfScale!=NULL) { m_vfScale = *pvfScale; } try { if( FAILED( _BuildHeightMap( lpBMPFilename ) ) ) throw ("지형 높이맵 BMP파일없음\n"); if( FAILED( _LoadTextures( lpTEXFilename ) ) ) throw ("지형 텍스쳐 파일없음\n"); if( FAILED( _CreateVIB() ) ) throw ("버텍스 인덱스 버퍼 생성에러\n"); } catch (const char* msg) { OutputDebugString(msg); _Destroy(); return E_FAIL; } m_pQuadTree = new ZQuadTree( this,0,m_cxDIB - 1,m_cxDIB * ( m_czDIB - 1 ), m_cxDIB * m_czDIB - 1 ); AttachChildNode(m_pQuadTree); m_BoundingSphere = m_pQuadTree->GetBoundingSphere(); QueueRenderer(this,true); return S_OK; }
/** * @brief 지형객체를 초기화한다. * @param pDev : 출력용 D3D디바이스 * @param pvfScale : 높이맵의 x,y,z값에 곱할 척도값(scale vector) * @param lpBMPFilename : 높이맵용 BMP파일명 * @param lpTexFilename : 출력용 D3D디바이스 */ HRESULT ZTerrain::Create( LPDIRECT3DDEVICE9 pDev, D3DXVECTOR3* pvfScale, LPSTR lpBMPFilename, LPSTR lpTEXFilename[4] ) { m_pd3dDevice = pDev; m_vfScale = *pvfScale; if( FAILED( _BuildHeightMap( lpBMPFilename ) ) ) { _Destroy(); return E_FAIL; } if( FAILED( _LoadTextures( lpTEXFilename ) ) ) { _Destroy(); return E_FAIL; } if( FAILED( _CreateVIB() ) ) { _Destroy(); return E_FAIL; } m_pQuadTree = new ZQuadTree( m_cxDIB, m_czDIB ); if( FAILED( _BuildQuadTree() ) ) { _Destroy(); return E_FAIL; } return S_OK; }
// 물메시 생성 int ZWater::Create( LPDIRECT3DDEVICE9 pDev, int cx, int cz, int nSpeed ) { m_pDev = pDev; m_cx = cx; m_cz = cz; m_nWaveTick = nSpeed; _LoadTextures(); _CreateVIB(); return 1; }