directX游戏编程实验四吴凉凉 2012329700012.doc
上传人:qw****27 上传时间:2024-09-11 格式:DOC 页数:5 大小:232KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

directX游戏编程实验四吴凉凉 2012329700012.doc

directX游戏编程实验四吴凉凉2012329700012.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

浙江理工大学《DirectX游戏编程》实验报告2013~2014学年第1学期学院信息学院班级12数字媒体技术1班姓名吴凉凉学号2012329700012任课教师(上课时间:第10周345节)数字媒体技术专业2014年5月15日《DirectX游戏编程》实验报告实验名称:DirectX彩色图形绘制实验实验地点:机1所使用的工具软件及环境:安装Windows操作系统(WindowsXp)和VC的1台计算机。一、实验平台WindowsXPprofessional操作系统。VC6.0集成开发环境.项目1:DirectX材质和光照实验在例程Cube的基础上,完成以下步骤:实现平行光照明。黄色材质设定。增加一个蓝色点光源。实现材质设定的透明度,实现50%透明度。在实验过程中注意灯光设置的方向、颜色等参数设定。项目2:DirectX纹理实验在项目1的程序基础上完成一下步骤:给立方体增加纹理,图片请自己准备。制作alpha通道纹理图,实现立方体的透明纹理。在实验过程中注意材质的透明度对纹理设定的影响。实验代码及结果1、黄色材质设定。//Turnonlighting.Device->SetRenderState(D3DRS_LIGHTING,true);D3DMATERIAL9mtrl;mtrl.Ambient=d3d::YELLOW;mtrl.Diffuse=d3d::YELLOW;mtrl.Specular=d3d::YELLOW;mtrl.Emissive=d3d::BLACK;mtrl.Power=5.0f;Device->SetMaterial(&mtrl);黄色材质设定。实现平行光照明。D3DLIGHT9dir;::ZeroMemory(&dir,sizeof(dir));dir.Type=D3DLIGHT_DIRECTIONAL;dir.Diffuse=d3d::WHITE;dir.Specular=d3d::WHITE*0.3f;dir.Ambient=d3d::WHITE*0.6f;dir.Direction=D3DXVECTOR3(1.0f,0.0f,0.0f);Device->SetLight(0,&dir);Device->LightEnable(0,true);Device->SetRenderState(D3DRS_NORMALIZENORMALS,true);Device->SetRenderState(D3DRS_SPECULARENABLE,true);将语句:Device->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME);注释后得3、增加一个蓝色点光源。D3DXVECTOR3pos(0.0f,0.0f,5.0f);D3DXCOLORc=d3d::BLUE;D3DLIGHT9point=d3d::InitPointLight(&pos,&c);Device->SetLight(1,&point);Device->LightEnable(1,true);实现材质设定的透明度,实现50%透明度。mtrl.Diffuse.a=0.5f;Device->CreateVertexBuffer(24*sizeof(Vertex),D3DUSAGE_WRITEONLY,Vertex::FVF,D3DPOOL_MANAGED,&VB,0);Device->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_DIFFUSE);Device->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);将原来的材质改成白色:D3DMATERIAL9mtrl;mtrl.Ambient=d3d::WHITE;mtrl.Diffuse=d3d::WHITE;mtrl.Specular=d3d::WHITE;mtrl.Emissive=d3d::BLACK;mtrl.Power=5.0f;mtrl.Diffuse.a=0.5f;Device->SetMaterial(&mtrl);将点光源也改成白色:D3DXVEC