Terrain.h
资源名称:Direct3D.rar [点击查看]
上传用户:junlon
上传日期:2022-01-05
资源大小:39075k
文件大小:2k
源码类别:
DirextX编程
开发平台:
Visual C++
- //--------------------------------------------------------------------------------------
- // 文件: terrain.h, 作者:曾凡喜
- //
- // 封装了均匀地形类,地形由 m_iWidth * m_iHeight 个顶点组成,高程值由height二维数组提供,地图的几何大小恒为40.0*40.0
- //
- // 使用该类三个步骤:CZFXTerrain() -> CreateTerrain() -> RenderTerrain()
- //
- // 版权归作者所有,不得用于商业用途
- //--------------------------------------------------------------------------------------
- #ifndef __TERRAIN_H__
- #define __TERRAIN_H__
- class CZFXTerrain
- {
- public:
- CZFXTerrain(void);
- ~CZFXTerrain(void);
- protected:
- LPDIRECT3DVERTEXBUFFER9 m_pVB;
- LPDIRECT3DINDEXBUFFER9 m_pIB;
- LPDIRECT3DTEXTURE9 m_pTexture;
- UINT m_iWidth;
- UINT m_iHeight;
- public:
- /** 创建地形,高程值从height二维数组中载入, 数组的格式应为height[iHeight][iWidth]
- iHeight, iWidth指定地形顶点数据的多少, fWidth, fHeight指定地形的几何大小
- */
- virtual bool CreateTerrain( LPDIRECT3DDEVICE9 pd3dDevice, int iWidth, int iHeight, float fWidth, float fHeight,
- float height[][200], LPCTSTR strTexFileName = NULL );
- // 渲染地形, Flag指定了填充模式,可以传入D3DFILL_POINT or D3DFILL_WIREFRAME
- bool RenderTerrain( LPDIRECT3DDEVICE9 pd3dDevice, D3DFILLMODE Flag = D3DFILL_SOLID );
- void OnDestroyDevice();
- };
- typedef struct tagCUSTOMVERTEX{
- D3DXVECTOR3 position; // The position of the vertex.
- D3DXVECTOR3 normal; // The nomal Vector.
- D3DCOLOR color; // The color
- FLOAT tu, tv; // The texture coordinates
- }CUSTOMVERTEX;
- #define D3DFVF_CUSTOMVERTEX D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1
- #endif //__TERRAIN_H__