1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DXUT进阶

dxut.h:DXUT进阶(翻译) 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/GameDevelopment/Article35784.html DXUT进阶 概要 这个指南涵盖了更多DXUT高级应用.这个指南里大部分功能是可选,为了以最小代价来增强你应用.DXUT提供了 个简单基于GUI系统精灵和个设备设置对话框.另外,它还提供了些摄像机类. 这个指南结果是个具有完善功能GUI用于更改设备和场景设置.它将有按钮,滑块,和文本来示范这些功能. 导航 #8226;DXUT摄像机 #8226;DXUT对话框 #8226;资源管理化 #8226;3D设置对话框 #8226;文本渲染 DXUT摄像机 DXUT中CModelViewerCamera类可以简单管理视图变换和透视变换,就像GUI功能样. CModelViewerCamerag_Camera;//Amodelviewingcamera 摄像机类提供第个功能是创建视图和透视矩阵.有了这个摄像机,没有必要担心这些矩阵.反而,你可以指定你在哪 ,你看着什么,还有窗口大小.然后,把这些参数传递给摄像机对象,它会在后台创建这些矩阵. 这里我们设置摄像机部分视图参数.我们指定我们在哪,和我们看着什么. //Initializethecamera D3DXVECTOR3Eye(0.0f,0.0f,-800.0f); D3DXVECTOR3At(0.0f,0.0f,0.0f); g_Camera.SetViewParams(Eye,At); 接下来,我们指定摄像机投影参数.也就是说,我们需要提供观察角度,纵横比,和视图截锥近、远裁剪面.这些信息跟 的前指南提供样,区别是,你不必担心如何去创建矩阵. //Setupthecamera\sprojectionparameters floatfAspectRatio=pBackBufferSurfaceDesc-Width/(FLOAT)pBackBufferSurfaceDesc-Height; g_Camera.SetProjParams(D3DX_PI/4,fAspectRatio,0.1f,5000.)0f); g_Camera.SetWindow(pBackBufferSurfaceDesc-Width,p00BackBufferSurfaceDesc-Height); 另外,这个摄像机还封装了简单鼠标反馈.在这里,我们指定 3个鼠标按键给提供鼠标操作:模型旋转,放缩,还有摄像 机旋转.试着编译工程并用每个按键体会下各个操作. g_Camera.SetButtonMasks(MOUSE_LEFT_BUTTON,MOUSE_WHEEL,MOUSE_MIDDLE_BUTTON); 在这个按钮组基础上,摄像机会监听这些输入并产生相应效果.为了响应用户输入,需要加入个监听到MsgProc回 调(DXUT消息处理). //Passallreingwindowsmessagestocamerasoitcanrespondtouserinput g_Camera.HandleMessages(hWnd,uMsg,wParam,lParam); 最后,在把所有数据都输入摄像机后,就是取出真正变换矩阵时候了.这里我们用相关获取投影矩阵和视图矩阵.摄 像机对象会自己计算这些矩阵. g_pProjectionVariable-SetMatrix((float*)g_Camera.GetProjMatrix); g_pViewVariable-SetMatrix((float*)g_Camera.GetViewMatrix); DXUT对话框 用户交互可以用CDXUTDialog来实现,它在个包含Control控件对话框里接受用户输入,并且通过句柄传递它们 .首先,对话框类要例子化,然后每个单独Control控件才能加入. 声明 在这个指南里,有两个对话框会被加入,个叫g_HUD跟D3D10举例共享相同代码,另个叫g_SampleUI用于显示细 节给这个指南.第 2个对话框用来控制模型胖瘦,就是设置个变量传递给shaders. CDXUTDialogg_HUD;//managesthe3DUI CDXUTDialogg_SampleUI;//dialogforsamplespeciccontrols 这些对话框被CDXUTDialogResourceManager控制着.这个管理会

您可能关注的文档

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档