DirectX 中矩阵得用法

D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵 D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵,有需要的朋友可以参考下。D3D中绘画3D模型基本上就是靠3个矩阵World, View, Projection来联合进行模型位置定位、视角定位及透视变形的,这与2D绘制一个图形只需要给出屏幕上的一个像素坐标就能进行定位有着非常大的不同。在某些场合,我们想根据屏幕上的像素坐标来绘制3D模型,一般可以通过用正交投影代替透视投影就能轻松进行绘制,但 阅读详情

简单来说,DirectX中矩阵得使用分为3个步骤:

1. 定义世界变换矩阵。

2.定义视口变换举证。

3.定义投影变换矩阵。

其中第一步中:

D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );//将变换矩阵的信息存在matWorld中,并没有实际变化
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );//设置了变化矩阵。

第二步:

D3DXVECTOR3 vEyePt   ( 0.0f, 3.0f,-5.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec   ( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );//生成视口变换矩阵
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );//相当于OpenGL中指定了好几个函数。

 

第三步:

D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );//后两个参数分别是近点,远点
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );

DirectX学习笔记(十三):取景变换矩阵计算及3D世界摄像机的原理分析和实现 11 阅读详情

相关推荐

从‘皮影戏’到现代2D游戏:除了序列帧,用DirectX 9的LPD3DXSPRITE能玩出什么花样?

本文探讨了DirectX 9中LPD3DXSPRITE系统在现代2D游戏开发中的进阶应用,从皮影戏的骨骼动画原理出发,详细解析了精灵系统的核心优势、矩阵变换技巧、透明混合技术及性能优化策略。通过实际案例和代码示例,展示了如何利用这一经典技术实现高效的2D渲染与复杂视觉效果,为开发者提供从传统技术到现代引擎的平滑过渡路径。

weixin_28691741的博客 259

DirectX 9.0 (2) 矩阵

引言 在3D图形学中,我们无时无刻不再和矩阵打交道,诸如平移,缩放,

i_dovelemon的专栏 1658

DirectX 12 持续整理 ——2. 矩阵

跳过线性代数的数学概念部分。 绝大部分内容来自于《Introduction to 3D Game Programming with DirectX12 Frank D. Luna》 矩阵Matrix 2.矩阵(Matrix)

如疯而至 948

【DirectX11】【学习笔记(7)】变换

这一节我们学习如何用矩阵变换,对场景中的物体进行实时的变换。 DirectX中的变换,我们用xna数学库里的XMMATRIX类型。 缩放矩阵 XNA已经提供了构建相应矩阵的函数 XMMATRIX XMMatrixScaling ( FLOAT ScaleX, // x=axis scale FLOAT ScaleY, // y-axis scale ...

qq_40947718的博客 1410

为什么DirectX 11 在把矩阵(例如View矩阵)传给shader之前要进行转置

一, 在DirectX11里, 能看到这样的代码 D3DXMatrixTranspose(&worldMatrix, &worldMatrix); D3DXMatrixTranspose(&viewMatrix, &viewMatrix); D3DXMatrixTranspose(&projectionMatrix, &projectionMatrix); 目的是把矩阵转置, 之后再传给

1592

DirectX投影变换矩阵的原理与推导,齐次裁剪空间的应用举例

DirectX Geometry Pipeline的投影变换不是D3DXMatrixShadow或者几何书上的投影变换。 几何书上的投影变换是这样的: 分别是平行投影和透视投影,把空间中的三维物体变成二维平面上的图形。 而DirectX Geometry Pipeline的投影变换是这样的: 上图分别是 Perspective Camera 和 Orthographic Camera 的视景体1

Better Explained 3538

DirectX的常用矩阵函数

矩阵的计算基本运算1)相等(A=B):如果两个矩阵维数相同且对应元素也相同2)矩阵与标量相乘:kD3)加减法必须维数相同4)AB≠BA单位矩阵:(Identity Matrix)主对角线上的元素为1其余为0,而且是方阵!乘其它数不变逆矩阵:(inverse matrix)1)只有方阵才可能有逆矩阵2)MM-1=M-1M =I3)(AB)-1 = A-1B-1矩阵的转置:m*n

xinxun的地盘 3128

Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

123

weixin_42441849的博客 723

DirectX 矩阵

基础: 下标:第一个下标为该元素所在行的索引,第二个下标为该元素所在列的索引。如下图所示 行向量和列向量:只有单行的向量称为行向量,只有单列的称之为列向量。 相等 维数和元素都相等 数乘(与标量相乘) 每一个元素与标量相乘 加法(矩阵+矩阵=矩阵) 两个矩阵相应元素想加所得的矩阵,必须维数相等 矩阵乘法(矩阵*矩阵=矩阵) 条件:A的列数必须等于...

weixin_34128411的博客 182

DirectX中C++实现带注释的透视矩阵详解

FOV 通常以弧度(radian)或度(degree)为单位,表示摄像机镜头张开的角度。常见的垂直FOV值为60°~90°,水平FOV则由垂直FOV与屏幕宽高比共同决定。在DirectX中,函数接受垂直FOV作为参数。这个角度越大,视野越宽,场景中能看到的内容越多,但物体之间的透视畸变也更明显;反之,较小的FOV则会让物体看起来更“拉近”,适合狙击镜等特写场景。数学上,垂直FOV决定了投影矩阵中缩放因子的计算方式:其中fovY是垂直FOV,是屏幕宽高比。

weixin_42513870的博客 1499

模型矩阵到世界矩阵的变换

用Direct3D模拟模型举证的变换,并与OpenGL进行比较学习。

DirectX10一矩阵代数(二)

一.矩阵基本概念 在DirectX10中,矩阵是一个非常重要的概念,这里我们主要探讨以下几个方面: 1.矩阵乘法          假设A是一个m*n矩阵,B是一个n*p的矩阵,若C = A* B,则C是一个m*p矩阵,其中C的每一个元素Ci,j = Ai,* * B*,j 2.向量-矩阵乘法           假设向量u=(x,y,z),矩阵A = [A*,1,A*,2,A*

liygcheng's coding world - 1505

基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案分享

各位FPGAer周末愉快,今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。

haoxingheng的专栏 1447

矩阵-DirectX与OpenGL的不同

矩阵是三维图形学中不可或缺的部分,几乎所有和变换相关的操作都涉及矩阵,世界变换,视图变换,投影变换,视口变换无一不需要矩阵,但是当今的两大主流图形库DirectX和OpenGL对矩阵操作却有着细微的差别,大多数的图形学书籍都以OpenGL为基础进行阐述,游戏编程类的书籍则更多使用DirectX,这就难免产生混淆,今天这篇主要讲讲两者在操作矩阵的时候有何不同。 矩阵 在三维图形学中,一般使用四维...

L_Andy的专栏 409

智能驾驶小白必看:MEB低速紧急制动系统的工作原理与传感器配置详解

本文深入解析了MEB低速紧急制动系统的工作原理与传感器配置。该系统作为智能驾驶的关键安全冗余,专为应对停车场、拥堵路段等复杂低速场景设计。文章详细拆解了其如何通过超声波雷达、环视摄像头等传感器融合感知环境,并基于碰撞时间(TTC)等模型进行风险评估与分级制动,最终实现主动防碰撞,是智能驾驶技术实用化的重要体现。

c2d3e4f的博客 1131

从华为杯建模到论文录用:我的Biomedical Signal Processing and Control投稿全记录(含Latex模板与审稿人推荐技巧)

本文详细记录了作者从华为杯数学建模竞赛到Biomedical Signal Processing and Control期刊投稿的全过程,分享了如何将竞赛成果转化为学术论文的实用技巧,包括LaTeX排版中的常见陷阱与解决方案,以及审稿人推荐策略。特别提供了针对Elsevier模板的优化建议和高效回复审稿意见的方法,适合生物医学信号处理领域的研究者参考。

weixin_42549037的博客 456

directx的矩阵运算

我在生成cube的时候,发现directx的运算规则不一样,以此记录。正常的情况下我们计算最终的点是这是列向量模式的正常运算directx的运算是。

m0_57958061的博客 181

LCD工程师必看:Pixelclock、Mipi Clk计算全解析(附实用公式)

本文为LCD工程师详细解析了像素时钟(Pixelclock)与MIPI时钟(Mipi Clk)的核心计算方法。文章从时序参数构成入手,通过实战公式推导,系统阐述了从屏幕分辨率、刷新率到最终MIPI速率的高效计算链路,并提供了实用的调试思路与排查清单,帮助工程师快速解决画面撕裂、闪烁等常见问题。

weixin_29266679的博客 391

DirectX学习:D3DX矩阵函数(转载)

DirectX学习:D3DX矩阵函数(转载) 1:D3DXMatrixAffineTransformation():创建一个仿射变换变换矩阵。NULL的参数就会当作是单位矩阵。 定义 D3DXMATRIX *WINAPI D3DXMatrixAffineTransformation(           D3DXMATRIX *pOut,      FL

arhaiyun的专栏 1145

配置某VLAN下ONU的二层互访(隔离)问题(解决OLT二层隔离问题)

问题:OLT的ONU节点之间在同一VLAN下的终端默认隔离,在确实需要互通的场景下如何解决。

symstandsun的博客 4568

线性代数-第24篇:线性代数在控制系统中的核心应用

线性代数通过状态空间建模、矩阵分解与优化算法,为控制系统提供了从理论分析到工程实现的完整框架。从传统PID控制到现代智能控制,其应用贯穿系统设计、分析与优化的全流程。未来,随着多智能体协同控制、量子控制系统等前沿领域的发展,线性代数将在高维矩阵计算、分布式优化等方向持续创新,为复杂控制系统的突破提供核心支撑。如果对线性代数在控制系统中的应用细节有疑问,欢迎在评论区留言!

无 424

3_矩阵变换_《3D图形编程基础——基于DirectX11》笔记

第三章、矩阵变换 ​ 本章讲解三维变换的基本知识,了解三维变换的数学表示及其在图形学中的意义。 第三章矩阵变换 1 基本变换 11 平移变换 12 旋转变换 13 缩放变换 2 XNA矩阵变换函数 3 几何变换的组合 目标: 基本矩阵变换:平移、缩放、旋转 XNA库中的矩阵变换函数 学习几何变换的组合 3.1 基本变换 ​ 矩阵变换中最为基础的

renjiewen1995的专栏 558

英飞凌TC3xx之一起认识GTM(八)如何使用DTM实现死区时间配置

本文简要介绍英飞凌TC3xx系列芯片的DTM模块结构,以及有哪些相关寄存器可用于实现相关配置。

无所适从的我的博客 4650
上一篇: DirectX lock 与 unlock?
下一篇: DirectX 中灯光的使用
NowhereFish
博客等级 码龄20年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值