- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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控制着.这个管理会
您可能关注的文档
- BS美丽秀形美内衣产品知识.docx
- BD动脉采血器介绍.ppt
- BIO-RADAPAA电泳仪说明书.pdf
- BZ-9型9孔不保温烤地瓜炉和228型多功能电热烤地瓜机价格.docx
- C012-L-林晓丽决策树算法在肝癌术后影响预测的应用.pdf
- C9芳烃合成高温导热油研究.pdf
- Calpain3的初步提取和对其自动降解性的研究.pdf
- CD4011中文使用说明书.pdf
- CH09并发控制.pdf
- 6-第六章-脉管系统3.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)