D3D视图转换矩阵、投影矩阵的具体形式
来源:互联网 发布:win mac双系统黑苹果 编辑:程序博客网 时间:2024/06/06 12:36
一直来D3DXMatrixLookAtLH()函数内部做些什么运算不是很清楚,今天偶尔在DiectX 帮助文档里看到原来
D3DXMATRIX * D3DXMatrixLookAtLH(
D3DXMATRIX * pOut,
CONST D3DXVECTOR3 * pEye,
CONST D3DXVECTOR3 * pAt,
CONST D3DXVECTOR3 * pUp
);
);
zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.xyaxis.x zaxis.x0
xaxis.yyaxis.y zaxis.y0
xaxis.zyaxis.z zaxis.z0
-dot(xaxis, eye)-dot(yaxis, eye) -dot(zaxis, eye) l
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.x
xaxis.y
xaxis.z
-dot(xaxis, eye)
这个函数作用世界坐标转换,怎么转呢?就是以eye 坐标为中心,xaxis为X轴,yaxis 为Y轴 zaxis 为Z轴转换的。世界坐标都要经过这样转换,转换到摄像机相对坐标,然后投影。
D3DXMatrixPerspectiveFov
D3DXMatrixOrthoLH(左手坐标系正交投影)
看看算法:
D3DXMATRIX * D3DXMatrixPerspectiveFov
);
xScale
0
0
0
where:
yScale = cot(fovY/2)
xScale = yScale / aspect ratio
可以看出透视投影,3维点x坐标跟FOV(广角)和投射屏幕纵横比(或者胶卷纵横比)有关系,而y坐标只跟广角有关联。
D3DXMATRIX * D3DXMatrixOrthoLH(
);
2/w
0
0
0
正交透视X,Y只跟最后投影屏幕的宽高相关联
- D3D视图转换矩阵、投影矩阵的具体形式
- D3D中的世界矩阵,视图矩阵,投影矩阵
- 投影矩阵 视图模型矩阵
- 模型矩阵、视图矩阵、投影矩阵
- DirectX11 创建视图-投影矩阵
- 模型视图矩阵和投影矩阵
- 模型视图矩阵与投影矩阵
- 模型视图矩阵和投影矩阵
- 模型视图矩阵和投影矩阵
- 投影矩阵的推导
- 线性代数矩阵的投影
- 投影矩阵的使用
- WEBGL学习【八】模型视图投影矩阵
- OpenGL 入门教程(五) -- 模型视图投影矩阵
- openGL中根据读取的数据,确定投影矩阵和模型视图矩阵
- 投影矩阵
- 小白学opengl之 获取模型视图矩阵和投影矩阵
- 【转】模型视图矩阵和投影矩阵(webgl笔记)
- vim 删除日志全部内容
- 从上百幅架构图中学得半点大型网站建设经验(上)
- JTAG原理
- 程序员必知8大排序3大查找
- chapter1 Oracle基础---2总结
- D3D视图转换矩阵、投影矩阵的具体形式
- 第12周-任务4-点类与圆类
- css 三级横向弹出菜单
- 英语学习的总结(一)
- linux下qt中 调用open函数 出现call to '__open_missing_mode' declared with attribute error。。解决
- 解引用 对象
- 基于液晶控制芯片T6963的液晶模块动态绘图编程方法
- select 联动菜单实现代码
- 齐次坐标概念&&透视投影矩阵推导