下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 三维编程实验十三、公转和自转

三维编程实验十三、公转和自转.doc

三维编程实验十三、公转和自转

hlphlp
2018-09-11 0人阅读 举报 0 0 暂无简介

简介:本文档为《三维编程实验十三、公转和自转doc》,可适用于IT/计算机领域

实验十二、圆柱体和球的创建、实验目的、掌握DD的圆柱体和球的创建、实验步骤、打开vsnet打开ftp上的Ddemo项目执行并观看结果。、修改纹理指针和材质结构以及世界变换结构体变量定义改成数组定义LPDIRECTDTEXTUREgpTextureDDMATERIALmatMaterialOBJRECobjRec、在InitDD函数中添加对纹理和材质的初始化以及调用设置函数。for(inti=i<i){gpTexturei=ZeroMemory(matMateriali,sizeof(matMateriali))ZeroMemory(objReci,sizeof(objReci))objRecifScale=f}if(FAILED(SetTexture(TEXT("spbmp"),))){returnEFAIL}if(FAILED(SetTexture(TEXT("wallbmp"),))){returnEFAIL}if(FAILED(InitLight())){returnEFAIL}、InitMaterial()、修改设置纹理函数记得也修改声明HRESULTSetTexture(TCHAR*pszTexturePath,intnum){if(FAILED(DDXCreateTextureFromFile(gpDDDevice,pszTexturePath,gpTexturenum))){returnEFAIL}returnSOK}、修改世界变换函数记得修改相应的函数声明voidSetupRotation(intnum){DDXMATRIXmatTrans,matWorldDDXMATRIXmatRotateX,matRotateY,matRotateZDDXMATRIXmatScaleDDXMatrixRotationX(matRotateX,objRecnumfXAngle)DDXMatrixRotationY(matRotateY,objRecnumfYAngle)DDXMatrixRotationZ(matRotateZ,objRecnumfZAngle)DDXMatrixMultiply(matWorld,matRotateX,matRotateY)DDXMatrixMultiply(matWorld,matWorld,matRotateZ)DDXMatrixScaling(matScale,objRecnumfScale,objRecnumfScale,objRecnumfScale)DDXMatrixMultiply(matWorld,matWorld,matScale)DDXMatrixTranslation(matTrans,objRecnumx,objRecnumy,objRecnumz)DDXMatrixMultiply(matWorld,matTrans,matWorld)gpDDDevice>SetTransform(DDTSWORLD,matWorld)}、修改材质函数voidInitMaterial(){matMaterialDiffuse=DDXCOLOR(,,,)rgbaDiffusematMaterialAmbient=DDXCOLOR(,,,)rgbaAmbientmatMaterialSpecular=DDXCOLOR(,,,)rgbaSpecularmatMaterialPower=f高光点的锐度matMaterialEmissive=DDXCOLOR(,,,)rgbaEmissivematMaterialDiffuse=DDXCOLOR(,,,)matMaterialAmbient=DDXCOLOR(,,,)matMaterialSpecular=DDXCOLOR(,,,)matMaterialPower=f高光点的锐度matMaterialEmissive=DDXCOLOR(,,,)}、修改渲染函数voidRender(){if(gpDDDevice){清屏gpDDDevice>Clear(,,DDCLEARTARGET|DDCLEARZBUFFER,DDCOLORXRGB(,,),f,)开始场景渲染if(SUCCEEDED(gpDDDevice>BeginScene())){SetupPerspective(mainhwnd)SetupViewer()gpDDDevice>SetFVF(DDFVFCUSTOMVERTEX)gpDDDevice>SetStreamSource(,gpVBSphere,,sizeof(CUSTOMVERTEX))objRecx=objRecfYAngle=objRecfScale=SetupRotation()gpDDDevice>SetTexture(,gpTexture)gpDDDevice>SetMaterial(matMaterial)gpDDDevice>DrawPrimitive(DDPTTRIANGLESTRIP,,iSpherePointNums)objRecx=objRecfScale=objRecfYAngle=SetupRotation()gpDDDevice>SetTexture(,gpTexture)gpDDDevice>SetMaterial(matMaterial)gpDDDevice>DrawPrimitive(DDPTTRIANGLESTRIP,,iSpherePointNums)结束场景渲染gpDDDevice>EndScene()}后备表面呈现出来gpDDDevice>Present(,,,)}}、修改摄像机的位置voidSetupViewer(){DDXMATRIXmatViewDDXMatrixLookAtLH(matView,DDXVECTOR(f,f,f),CameraPositionDDXVECTOR(f,f,f),LookAtPositionDDXVECTOR(f,f,f))UpDirectiongpDDDevice>SetTransform(DDTSVIEW,matView)}、消息处理函数的鼠标消息不要caseWMLBUTTONDOWN:ptOldx=LOWORD(lParam)ptOldy=HIWORD(lParam)returncaseWMMOUSEMOVE:if(MKRBUTTON==wParam){POINTptRECTrectptx=LOWORD(lParam)pty=HIWORD(lParam)GetWindowRect(hWnd,rect)objRecfXAngle=*(float)(ptyptOldy)(float)(rectbottomrecttop)objRecfYAngle=*(float)(ptxptOldx)(float)(rectrightrectleft)ptOld=pt}break、修改退出函数voidCleanUp(){for(inti=i<i){if(gpTexturei){gpTexturei>Release()gpTexturei=}}if(gpDDDevice){gpDDDevice>Release()gpDDDevice=}if(gpDD){gpDD>Release()gpDD=}}绕任意轴旋转矩阵的创建(例如)DDXMatrixRotationAxis(matRotate,DDXVECTOR(,,),objRecnumfAngle)

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/5

三维编程实验十三、公转和自转

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利