⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staticmesh.h

📁 DirectInput的基本实现 只是基本应用
💻 H
字号:
/********************************************************************
	created:	2007/03/19
	created:	19:3:2007   9:59
	filename:	StaticMesh.h
	author:		杨智
	
	purpose:	简单的.X文件静态模型的读取、渲染和设置贴图
*********************************************************************/
#include <vector>
using namespace std;

#pragma once

/** 静态模型类
	@remarks
		
	@par
		
	@par
		此类包括了如下知识点:
*/

class CStaticMesh
{
private:
	/// D3D设备
	LPDIRECT3DDEVICE9   m_pDevice;
	/// 模型文件名
	CHAR				m_fileName[MAX_PATH];

	/// 模型材质
	vector<D3DMATERIAL9>		m_vecMaterial;
	/// 模型贴图
	vector<LPDIRECT3DTEXTURE9>	m_vecTexture;
	/// 模型材质数量
	DWORD m_dwNumMaterials;

	/// 网格模型
	LPD3DXMESH			m_pMesh;

	/// 场景混合模式
	SceneBlendType		m_enBlendType;

public:
	CStaticMesh(void);
	~CStaticMesh(void);

	/** 初始化静态模型
	@remarks
	
	@param
		pDevice D3D设备
	@param
		pFileName 模型文件名
	*/
	bool Init(LPDIRECT3DDEVICE9 pDevice, LPCSTR pFileName);

	/** 渲染静态模型
	@remarks

	@param
		pMatWorld 变换矩阵	
	*/
	void Render(const D3DXMATRIX &matWorld);

	/** 从文件设置静态模型贴图
	@remarks
	
	@param
		dwID 贴图ID
	@param
		pFileName 贴图文件名
	*/
	HRESULT SetTextureFromFile(DWORD dwID, LPCSTR pFileName);
	/** 从现有贴图设置贴图
		@param
			dwID 贴图ID
		@param
			pTexture 原贴图
	*/
	void SetTexture(DWORD dwID, LPDIRECT3DTEXTURE9 pTexture);
	/** 优化网格模型
	@remarks
	
	*/
	HRESULT Optimize(void);
	/** 获得网格模型
	@remarks
	
	*/
	LPD3DXMESH GetSysMemMesh(void);
	/** 设置顶点格式
	*/
	HRESULT SetFVF(DWORD dwFVF);
	/** 获得纹理信息
	*/
	LPDIRECT3DTEXTURE9 *GetTexture(DWORD dwID);
	/** 获得模型文件名
	*/
	LPCSTR GetFileName() { return m_fileName; };
	/** 设置场景混合方式
	*/
	void SetBlendType( SceneBlendType enBlendType ) { m_enBlendType = enBlendType; };
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -