`
hereson
  • 浏览: 1444510 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

D3DXMatrixLookAtRH 函数

阅读更多
D3DXMatrixLookAtLH 函数



--------------------------------------------------------------------------------


创建左手坐标系的观察矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(     



    D3DXMATRIX *pOut,
    CONST D3DXVECTOR3 *pEye,    CONST D3DXVECTOR3 *pAt,    CONST D3DXVECTOR3 *pUp);参数:

pOut

[in, out] 指向 D3DXMATRIX 结构的返回结果的矩阵。

pEye

[in] 指向D3DXVECTOR3 结构的眼睛所有在位置向量。这个值会用来作平移。

pAt

[in] 指向 D3DXVECTOR3 结构的摄像机观察目标位置向量。

pUp

[in] 指向D3DXVECTOR3 结构的当前世界坐标系向上方向向量。通常用[0, 1, 0]向量。

返回值:

指向D3DXMATRIX 结构的左手坐标系观察矩阵。



说明:

返回值是跟参数pOut 返回值是一样的。通过这样方式,可以让D3DXMatrixLookAtLH 函数成为其它函数的参数。

这个函数用下面的公式来计算返回的矩阵:

zaxis = normal(At - Eye)xaxis = normal(cross(Up, zaxis))yaxis = cross(zaxis, xaxis)  xaxis.x           yaxis.x           zaxis.x          0 xaxis.y           yaxis.y           zaxis.y          0 xaxis.z           yaxis.z           zaxis.z          0-dot(xaxis, eye)  -dot(yaxis, eye)  -dot(zaxis, eye)  1函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98


相关函数:

D3DXMatrixLookAtRH




使用说明:
一台摄象机有以上画面中的一些属性:
  1、 观察点:摄象机摆放的位置
  2、 目标点:摄象机对着一个地方
  3、 观察范围:圆锥形状投影范围的夹角大小,单位是弧度。
  4、 可见的最近距离和最远距离:这两个距离中间的观察范围就是可见区域。
  5、 纵横比:显示时候的宽和高比例,一般为1。

  明白了摄象机的原理后,我们来看D3D中是怎么设置它的,有两个矩阵是用来设置摄象机的,一个是观察矩阵,一个是射影矩阵,程序说明一切。
  首先是设置摄象机的观察矩阵:

  m_vEyePt = D3DXVECTOR3( 0.0f, 3.0f,-5.0f ); // 视点坐标
  m_vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f ); // 目标点坐标
  m_vUpVec = D3DXVECTOR3( 0.0f, 1.0f, 0.0f ); // 当前世界的向上方向,通常是(0,1,0)

  // 根据上面给出的3个值建立一个基于左手坐标系的观察矩阵
  D3DXMatrixLookAtLH( &m_matView, &m_vEyePt, &m_vLookatPt, &m_vUpVec );

  // 设置该矩阵为D3D的当前观察矩阵
  pd3dDevice->SetTransform( D3DTS_VIEW, &m_matView );

分享到:
评论

相关推荐

    D3D9 黑屏优化源码 VC 只需要把DLL插入目标进程即可

    - **Hook技术**:为了能够控制D3D9的函数调用,源码可能会使用钩子(Hook)技术,如SetWindowsHookEx,来替换或拦截原生的D3D9函数,从而在调用前后添加自定义的处理代码。 - **设备初始化和恢复**:当遇到黑屏...

    DELPHI HOOK D3D画字画字源代码

    DELPHI HOOK D3D画字画字源代码是一种技术,它允许开发者在基于Direct3D的游戏或应用中插入自定义文字。这种技术通常用于游戏MOD(模组)开发,以便在游戏中添加个性化元素,如玩家分数、聊天窗口或者自定义提示信息...

    Hook D3D9.dll代码

    在IT行业中,Hook技术是一种广泛使用的调试和编程技巧,它允许开发者拦截并修改特定函数的行为。在本场景中,"Hook D3D9.dll代码"指的是编写程序来挂钩(hook)Direct3D 9的动态链接库(D3D9.dll),特别是其中的...

    D3DXCreateText.rar_3d字体_D3DXCreateTe_D3DXCreateText

    D3DX库是DirectX SDK中的一个辅助库,提供了许多方便的功能,包括D3DXCreateText函数,用于在场景中生成3D文本对象。这个例子“D3DXCreateText.rar”显然是一个关于3D字体创建和操作的教程或示例代码,它可能包含...

    d3jsExtended扩展D3包含一些常见的jQuery函数

    为了解决这个问题,d3.js Extended应运而生,它扩展了d3.js的功能,将一些常见的jQuery函数引入到d3中,使开发者能够更加高效地进行数据可视化开发。 d3.js Extended的核心理念是简化d3.js的使用,使得具备jQuery...

    d3.min.js d3.js

    6. 创建图形:利用D3的基本图形生成函数,如`line()`, `rect()`, `circle()`等创建图形。 7. 更新视图:当数据发生变化时,D3会自动更新对应的DOM元素,实现数据驱动的动态更新。 学习和掌握D3.js不仅可以提升你的...

    dx函数总结中文版+D3D中文翻译

    DirectX(简称DX)是微软开发的一套用于Windows操作...通过阅读“dx函数总结中文版”和“D3D中文翻译”,开发者可以系统性地了解和学习DirectX的相关知识,从而提升在游戏开发、图形编程以及其他多媒体应用领域的技能。

    e语言-易语言D3DHook

    3. Hook D3D函数:利用API钩子技术,替换目标函数的入口地址,使其指向我们的自定义函数。 4. 自定义处理:在自定义函数中,可以添加任何需要的操作,如记录渲染参数、改变渲染效果等。 5. 转交控制:在完成自定义...

    HOOK graphics driver_.zip_d3d_d3d驱动hook_显卡D3D_显卡驱动_驱动源码

    D3D驱动是连接操作系统和硬件的重要桥梁,而Hook技术则是一种在程序运行时动态改变函数调用流程的技术。本篇将详细探讨D3D驱动Hook以及显卡驱动的相关知识。 一、D3D驱动与显卡D3D Direct3D驱动分为用户模式驱动...

    D3DHOOK.zip_C++ D3DHOOK源码_D3D Hook透视_d3d 游戏_snakezl3_透视

    1. 识别和Hook关键的D3D函数,如`CreateDevice`或`Present`,这些函数是D3D渲染流程的核心。 2. 创建自定义的钩子函数,这些函数会在原函数被调用前或后执行,用来修改渲染参数或捕获渲染数据。 3. 实现透视逻辑,...

    D3-3 进入,更新,退出模式例子(函数作为数据)

    在D3.js库中,进入、更新和退出模式是数据绑定和可视化操作的核心概念,尤其在处理动态数据时显得尤为重要。这些模式使得开发者能够...掌握进入、更新和退出模式,以及函数作为数据的用法,是成为D3.js高手的关键步骤。

    流程图_dagre-d3流程图_dagre-d3_DEMO_

    4. **初始化图对象**:使用dagre.digraph()函数创建一个新的有向图对象,这是所有节点和边的容器。 5. **添加节点和边**:根据你的需求,调用graph.addNode()和graph.addEdge()方法,分别添加节点和边。节点可以是...

    d3-function-plotting:轻松绘制函数图

    本项目“d3-function-plotting”是专门针对使用JavaScript进行函数绘图的一个库,旨在帮助开发者轻松地创建各种函数图表。下面将详细介绍这个库的核心特性、使用方法以及在实际应用中的价值。 首先,d3.js是一个...

    包含 dagre-d3.js d3.js 最新版 亲测可用

    4. 调用dagre-d3的布局函数,传递数据和配置参数。 5. 将布局结果应用到SVG元素,创建图形。 6. 添加交互功能,如点击事件、拖拽等。 总的来说,这个压缩包提供了创建网页流程图所需的基本工具,适用于那些希望在...

    使用d3-force、d3-zoom、d3-drag绘制的图像

    在这个案例中,`d3.forceSimulation()`函数用于初始化模拟,`d3.forceX()`和`d3.forceY()`定义了节点在x轴和y轴上的引力,而`d3.forceManyBody()`处理节点间的排斥力。 2. **d3-zoom**:这个模块提供了缩放和平移的...

    d3dx9 d3dx10 的各个版本,比如d3dx9_25

    d3dx9 d3dx10 的各个版本,游戏不能启动时,一定要下载这个 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 ...

    D3DXCreateText.rar_D3DXCreateText_DEMO

    总的来说,“D3DXCreateText.rar_D3DXCreateText_DEMO”是一个非常实用的学习资源,通过它,开发者能够深入理解D3DXCreateText函数的使用,以及3D文本在Direct3D环境中的旋转实现,从而提升3D游戏开发技能。...

    D3.js in Action Second Edition D3.js实战 2018年最新版 原书第二版 pdf格式 386页

    D3.geo投影函数可以让开发者轻松地将地球表面转换为二维平面,以便进行地图绘制。同时,结合 topojson 格式的数据,可以高效地处理地理信息。 除此之外,D3.time模块用于处理时间序列数据,对于金融、气象等领域的...

Global site tag (gtag.js) - Google Analytics