资源描述:
《directx游戏编程实验五吴凉凉 2012329700012》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、浙江理工大学《DirectX游戏编程》实验报告2013~2014学年第1学期学院信息学院班级12数字媒体技术1班姓名吴凉凉学号2012329700012任课教师(上课时间:第10周345节)数字媒体技术专业2014年5月15日《DirectX游戏编程》实验报告实验名称:DirectX三维文字场及地形景实验实验地点:机1一、实验平台lWindowsXPprofessional操作系统。lVC6.0集成开发环境二、实验内容及结果(1)在VC++编程环境下建立三维场景,场景中包括:1.茶壶模型、圆柱体模型。2.茶壶模型使用黄色材
2、质。3.圆柱体模型使用纹理贴图材质。4.设置一个电光源灯光系统。(2)在VC++编程环境下建立一个三维文字及地形的设计。1.在三维场景中,使用地形文件建立一个三维地形。2.同时输出三维文字,文字内容包括:学生名字、学号。要求能够使用粒子系统实现烟火/雪花等特效。1、添加三维地形:2、声明:Terrain*TheTerrain=0;psys::PSystem*Exp=0;创造三维地形:////Createtheterrain.//D3DXVECTOR3lightDirection(0.0f,1.0f,0.0f);TheTer
3、rain=newTerrain(Device,"coastMountain64.raw",64,64,10,0.1f);TheTerrain->genTexture(&lightDirection);添加文字://fontHDChdc=CreateCompatibleDC(0);HFONThFont;HFONThFontOld;LOGFONTlf;ZeroMemory(&lf,sizeof(LOGFONT));lf.lfHeight=25;//inlogicalunitslf.lfWidth=12;//inlogicalu
4、nitslf.lfEscapement=0;lf.lfOrientation=0;lf.lfWeight=100;//boldness,range0(light)-1000(bold)lf.lfItalic=true;lf.lfUnderline=true;lf.lfStrikeOut=true;lf.lfCharSet=DEFAULT_CHARSET;lf.lfOutPrecision=0;lf.lfClipPrecision=0;lf.lfQuality=0;lf.lfPitchAndFamily=0;strcpy_s
5、(lf.lfFaceName,"TimesNewRoman");//fontstylehFont=CreateFontIndirect(&lf);hFontOld=(HFONT)SelectObject(hdc,hFont);D3DXCreateText(Device,hdc,"wuliangliang2012329700012",0.005f,1.0f,&Text,0,0);SelectObject(hdc,hFontOld);DeleteObject(hFont);DeleteDC(hdc);文字旋转的设置:D3DXM
6、ATRIXyyRot,T;staticfloatyy=0.1f;D3DXMatrixRotationY(&yyRot,yy);yy+=timeDelta;if(yy>=6.28f)yy=0.0f;D3DXMatrixTranslation(&T,30.0f,30.0f,-10.0f);T=T*yyRot;Device->SetTransform(D3DTS_WORLD,&T);添加茶壶:D3DXCreateTeapot(Device,&Objects[0],0);D3DXMatrixTranslation(&Worlds[
7、0],40.0f,40.0f,-10.0f);Mtrls[0]=d3d::YELLOW_MTRL;茶壶点光源的设置:D3DXVECTOR3pos(0.0f,0.0f,0.0f);D3DXCOLORc=d3d::WHITE;D3DLIGHT9point=d3d::InitPointLight(&pos,&c);Device->SetLight(0,&point);Device->LightEnable(0,true);Device->SetRenderState(D3DRS_NORMALIZENORMALS,true);De
8、vice->SetRenderState(D3DRS_SPECULARENABLE,true);D3DXMATRIXV;清除工作voidCleanup(){d3d::Delete(TheTerrain);d3d::Delete(Exp);d3d::Dr