使用DXUT框架简单处理鼠标事件
2010-07-17 16:09
375 查看
在书上没有找到使用DXUT中的camera类来处理简单鼠标事件的内容,在网上找到了,分享一下,只要简单几步就可以了,如果要处理复杂的鼠标响应事件,就自己写MouseProc( ... ),然后调用相应注册函数void DXUTSetCallbackMouse( ... ),下面的数处理鼠标转换视角和旋转物体等事件
有些camera类是在DXUTMisc.h中定义的,有些是在DXUTCamera.h中定义的
包含相应的头文件
定义一个全局变量保存model camera
1 CModelViewerCamera modelCamera ;
在OnD3D9CreateDevice函数中设置view matrix
eyePt 眼睛 位于z轴的负半轴5个单位距离处,DirectX使用左手系,z轴正向指向屏幕内部。
lookAt 视点 位于坐标原点
通过这个设置,我们相当于在z轴负半轴5个单位距离处朝坐标原点看
至于向上向量,camera类会为我们设置,一般是 D3DXVECTOR3 up(0.0f, 1.0f, 0.0f)
1 D3DXVECTOR3 eyePt(0.0f, 0.0f, -5.0f);
2 D3DXVECTOR3 lookAt(0.0f, 0.0f, 0.0f);
3 modelCamera.SetViewParams(&eyePt, &lookAt) ;
在OnD3D9ResetDevice函数中设置投影矩阵
Code
1 // Set world matrix
2 D3DXMATRIX world = *modelCamera.GetWorldMatrix() ;
3 pd3dDevice->SetTransform(D3DTS_WORLD, &world) ;
4
5 // Set view matrix
6 D3DXMATRIX view = *modelCamera.GetViewMatrix() ;
7 pd3dDevice->SetTransform(D3DTS_VIEW, &view) ;
8
9 // Set projection matrix
10 D3DXMATRIX proj = *modelCamera.GetProjMatrix() ;
11 pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj) ;
12
有些camera类是在DXUTMisc.h中定义的,有些是在DXUTCamera.h中定义的
包含相应的头文件
定义一个全局变量保存model camera
1 CModelViewerCamera modelCamera ;
在OnD3D9CreateDevice函数中设置view matrix
eyePt 眼睛 位于z轴的负半轴5个单位距离处,DirectX使用左手系,z轴正向指向屏幕内部。
lookAt 视点 位于坐标原点
通过这个设置,我们相当于在z轴负半轴5个单位距离处朝坐标原点看
至于向上向量,camera类会为我们设置,一般是 D3DXVECTOR3 up(0.0f, 1.0f, 0.0f)
1 D3DXVECTOR3 eyePt(0.0f, 0.0f, -5.0f);
2 D3DXVECTOR3 lookAt(0.0f, 0.0f, 0.0f);
3 modelCamera.SetViewParams(&eyePt, &lookAt) ;
在OnD3D9ResetDevice函数中设置投影矩阵
Code
1 // Set world matrix
2 D3DXMATRIX world = *modelCamera.GetWorldMatrix() ;
3 pd3dDevice->SetTransform(D3DTS_WORLD, &world) ;
4
5 // Set view matrix
6 D3DXMATRIX view = *modelCamera.GetViewMatrix() ;
7 pd3dDevice->SetTransform(D3DTS_VIEW, &view) ;
8
9 // Set projection matrix
10 D3DXMATRIX proj = *modelCamera.GetProjMatrix() ;
11 pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj) ;
12
相关文章推荐
- 使用DXUT框架简单处理鼠标事件
- 事件总线分发库EventBus框架的简单使用
- 幸福框架:使用 “离线事件” 处理 “长事务”
- 使用mouse事件实现简单的鼠标经过特效
- 幸福框架:使用 “离线事件” 处理 “长事务”
- 自己动手写一个简单的IOC框架,使用注解绑定资源和事件
- JavaScript处理简单鼠标事件
- python的分布式任务并行处理框架Jug简单使用
- 百度地图之事件处理——获取所在的经纬度(百度地图简单使用)
- 菜单、按钮OnClick鼠标事件关联丢失,TActionList的简单使用
- JavaScript Wheel Event - 使用JavaScript处理浏览器的鼠标滑轮事件
- 处理鼠标响应事件(最简单控件 good)
- 使用事件处理创建一个简单的绘图实例程序 python
- 关于Webdriver自动化测试时,页面数据与数据库id不一致的处理方式,需要使用鼠标事件
- Java简单图形编辑器 放置、移动和擦除方块 鼠标事件测试程序 Java核心技术 事件处理
- Silverlight学习笔记(七)-----Silverlight事件处理之鼠标事件实现简单拖拽
- Android中常见的图片处理框架的简单使用
- 多线程实现简单的事件异步处理框架
- 使用mouse事件实现简单的鼠标经过特效
- java例程练习(简单的画图程序[鼠标事件处理])