Directx11教程(58) 鼠标控制摄像机

简介: 本篇教程我们实现鼠标旋转摄像机的操作。主要就是按下鼠标左键的时候,根据鼠标的移动对摄像机进行pitch, raw的组合旋转。具体修改代码是在D3CClass类中,增加对鼠标事件的处理: case WM_LBUTTONDOWN:     if( wparam & MK_LB...

       本篇教程我们实现鼠标旋转摄像机的操作。主要就是按下鼠标左键的时候,根据鼠标的移动对摄像机进行pitch, raw的组合旋转。具体修改代码是在D3CClass类中,增加对鼠标事件的处理:

case WM_LBUTTONDOWN:
    if( wparam & MK_LBUTTON )
        {
        SetCapture(hwnd);

        m_OldMousePos.x = LOWORD(lparam);
        m_OldMousePos.y = HIWORD(lparam);
        }
    return 0;

case WM_LBUTTONUP:
    ReleaseCapture();
    return 0;

case WM_MOUSEMOVE:
    if( wparam & MK_LBUTTON )
        {
        mousePos.x = (int)LOWORD(lparam);
        mousePos.y = (int)HIWORD(lparam);

        dx = mousePos.x - m_OldMousePos.x;
        dy = mousePos.y - m_OldMousePos.y;
        //通过鼠标转动摄像机
        m_Graphics->m_Camera->pitch(dy * 0.0087266f);
        m_Graphics->m_Camera->yaw(dx * 0.0087266f);

        m_OldMousePos = mousePos;
        }
    return 0;

完整的代码请参考:

工程文件myTutorialD3D11_53

代码下载:

http://files.cnblogs.com/mikewolf2002/d3d1150-58.zip

http://files.cnblogs.com/mikewolf2002/pictures.zip

相关文章
|
10月前
|
Web App开发 编解码 vr&ar
Deepseek解读 | UE像素流送与实时云渲染技术的差别
为了实现UE引擎开发的3D/XR程序推流,开发者通常使用像素流送(Pixel Streaming)技术。它通过WebRTC协议将服务器端渲染的画面传输到客户端,适用于短时、少并发场景。然而,在项目落地阶段,其局限性显现,实时云渲染方案成为更好的选择。Deepseek分析表明,实时云渲染具备高性能分布式渲染、低延迟传输、多平台支持等优势,特别适合高复杂度场景和大规模应用。Paraverse平行云的LarkXR产品,作为领先的实时云渲染解决方案,提供高质量、低延迟的渲染体验,支持多种3D引擎和XR内容格式,具备弹性扩展和成本优化等特点,广泛应用于元宇宙、虚拟仿真等领域。
|
Linux C语言
Linux gcc升级全过程,过程超详细
Linux gcc升级全过程,过程超详细
7606 0
Linux gcc升级全过程,过程超详细
|
存储 人工智能 自然语言处理
大模型时代还需要知识图谱么?新一代知识图谱语义框架SPG赋能企业数智化转型
本文以商家经营和风险防控为例,介绍了在企业数字化中的图谱应用。结合当前产业应用和研究进展,本文梳理总结了LLM、KG 在企业数字化中的可能应用。
大模型时代还需要知识图谱么?新一代知识图谱语义框架SPG赋能企业数智化转型
|
JavaScript
解决vue3使用element-ui
解决vue3使用element-ui
844 0
|
Java Linux 开发工具
linux 安装java环境
linux 安装java环境
|
架构师 搜索推荐 开发者
会员型网站原型制作|学习笔记
快速学习会员型网站原型制作。
174 0
会员型网站原型制作|学习笔记
|
12天前
|
数据采集 人工智能 安全

热门文章

最新文章