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 );
分享到:
相关推荐
D3 基础知识点总结 D3(Data-Driven Documents)是一种基于 web 的数据可视化工具,允许开发者使用数据来生成交互式的图形和图表。以下是 D3 基础知识点的总结: 1. 添加元素 在 D3 中,可以使用 append() 方法...
- **Hook技术**:为了能够控制D3D9的函数调用,源码可能会使用钩子(Hook)技术,如SetWindowsHookEx,来替换或拦截原生的D3D9函数,从而在调用前后添加自定义的处理代码。 - **设备初始化和恢复**:当遇到黑屏...
DELPHI HOOK D3D画字画字源代码是一种技术,它允许开发者在基于Direct3D的游戏或应用中插入自定义文字。这种技术通常用于游戏MOD(模组)开发,以便在游戏中添加个性化元素,如玩家分数、聊天窗口或者自定义提示信息...
在IT行业中,Hook技术是一种广泛使用的调试和编程技巧,它允许开发者拦截并修改特定函数的行为。在本场景中,"Hook D3D9.dll代码"指的是编写程序来挂钩(hook)Direct3D 9的动态链接库(D3D9.dll),特别是其中的...
D3DX库是DirectX SDK中的一个辅助库,提供了许多方便的功能,包括D3DXCreateText函数,用于在场景中生成3D文本对象。这个例子“D3DXCreateText.rar”显然是一个关于3D字体创建和操作的教程或示例代码,它可能包含...
为了解决这个问题,d3.js Extended应运而生,它扩展了d3.js的功能,将一些常见的jQuery函数引入到d3中,使开发者能够更加高效地进行数据可视化开发。 d3.js Extended的核心理念是简化d3.js的使用,使得具备jQuery...
6. 创建图形:利用D3的基本图形生成函数,如`line()`, `rect()`, `circle()`等创建图形。 7. 更新视图:当数据发生变化时,D3会自动更新对应的DOM元素,实现数据驱动的动态更新。 学习和掌握D3.js不仅可以提升你的...
DirectX(简称DX)是微软开发的一套用于Windows操作...通过阅读“dx函数总结中文版”和“D3D中文翻译”,开发者可以系统性地了解和学习DirectX的相关知识,从而提升在游戏开发、图形编程以及其他多媒体应用领域的技能。
在实际应用中,D3Dhook的工作原理通常是通过钩子技术在Direct3D函数调用前后插入自定义代码,比如在绘制前修改渲染参数,或者在绘制后收集帧信息。这种技术对于游戏开发者和图形编程爱好者来说非常有用,他们可以...
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 ...
3. Hook D3D函数:利用API钩子技术,替换目标函数的入口地址,使其指向我们的自定义函数。 4. 自定义处理:在自定义函数中,可以添加任何需要的操作,如记录渲染参数、改变渲染效果等。 5. 转交控制:在完成自定义...
在这个案例中,`d3.forceSimulation()`函数用于初始化模拟,`d3.forceX()`和`d3.forceY()`定义了节点在x轴和y轴上的引力,而`d3.forceManyBody()`处理节点间的排斥力。 2. **d3-zoom**:这个模块提供了缩放和平移的...
D3D驱动是连接操作系统和硬件的重要桥梁,而Hook技术则是一种在程序运行时动态改变函数调用流程的技术。本篇将详细探讨D3D驱动Hook以及显卡驱动的相关知识。 一、D3D驱动与显卡D3D Direct3D驱动分为用户模式驱动...
1. 识别和Hook关键的D3D函数,如`CreateDevice`或`Present`,这些函数是D3D渲染流程的核心。 2. 创建自定义的钩子函数,这些函数会在原函数被调用前或后执行,用来修改渲染参数或捕获渲染数据。 3. 实现透视逻辑,...
4. 调用dagre-d3的布局函数,传递数据和配置参数。 5. 将布局结果应用到SVG元素,创建图形。 6. 添加交互功能,如点击事件、拖拽等。 总的来说,这个压缩包提供了创建网页流程图所需的基本工具,适用于那些希望在...
在D3.js库中,进入、更新和退出模式是数据绑定和可视化操作的核心概念,尤其在处理动态数据时显得尤为重要。这些模式使得开发者能够...掌握进入、更新和退出模式,以及函数作为数据的用法,是成为D3.js高手的关键步骤。
4. **初始化图对象**:使用dagre.digraph()函数创建一个新的有向图对象,这是所有节点和边的容器。 5. **添加节点和边**:根据你的需求,调用graph.addNode()和graph.addEdge()方法,分别添加节点和边。节点可以是...
本项目“d3-function-plotting”是专门针对使用JavaScript进行函数绘图的一个库,旨在帮助开发者轻松地创建各种函数图表。下面将详细介绍这个库的核心特性、使用方法以及在实际应用中的价值。 首先,d3.js是一个...
4. **尺度和转换**:D3.js提供了多种尺度(如线性尺度、对数尺度等)和转换函数,用于将数据值映射到视觉属性。 5. **几何操作**:如生成折线图、柱状图、饼图、地图等,D3.js提供了丰富的几何操作函数。 6. **...