1、 千里之行,始于足下。
学习D3D的版本是9.0,需要下载DXSDK_Mar09.exe,可以从微软官方网站下载。编译环境为Visual studio2010。开发之前需要设置一些环境。首先创建一个工程。在工程属性里选择:
1) 配置属性-->VC++目录-à包含目录和库目录添加D3D的头文件和库文件路径。
2) 在链接器à附加依赖项中加入所用的库文件名称。
2、 第一份代码
由于某种原因,我选择建立基于对话框的MFC程序。例如工程名字为MYD3D。
在对话框上添加Picture控件作为渲染窗口。将Picture的ID设为:IDC_VIEW.开始编码工作。首先需要初始化D3D,渲染,退出释放对象。最简单的D3D程序流程为:
1)初始化函数:HRESULT InitD3D( HWND hWnd )
在函数中完成D3D对象创建和D3D设备对象创建。(注意:在创建顺序。在创建D3D设备对象之前要设置D3DPRESENT_PARAMETERS结构,典型的采用以下方式(初学者没必要深究):
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed=TRUE;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=D3DFMT_UNKNOWN;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
d3dpp.hDeviceWindow= hWnd;
)
2)渲染函数 VOID Render()
渲染过程为:
3、 退出释放对象Cleanup()
首先释放绘制图形对象,接着释放D3D设备对象,最后释放D3D对象。
4、 创建基于对话框的D3D程序模板,也即最简单的D3D程序。
在对话框的初始化函数中添加D3D初始化函数。InitD3D(hWnd),在对话框类中添加自定义消息响应:WM_KICKIDLE,
在对应函数中OnKickidle()添加渲染函数Render()。