一下是我的学习笔记:

D3DXVec3project//将3D物理坐标点变到SURFACE的2D点
现在我来解释一下
1.3D物理坐标,看例子
声明 点 A( a,b,c);
DEVICE->SETTRANSFORM( WORLD,MATRIX)
DRAW (A)
此时A(a,b,c)为物理坐标
若MATRIX为单位矩阵那么A为世界坐标的点

什么叫SURFACE的2D点
是指每个程序中都有个MAIN SURFACE (DIRECTDRAW 里的主绘图页相似);
现在的SURFACE是指MAINSURFACE的总体或者小部分;

typedef struct D3DVIEWPORT9 {
     DWORD X;
     DWORD Y;
     DWORD Width;
     DWORD Height;
     float MinZ;
     float MaxZ;
}

结构体中指明了此目标SURFACE 是MAINSURFACE的哪一部分
一般情况是真个MAINSURFACE即目标SURFACE,这个结构体此时的设置为
{
0,
0,
MAINSURFACE.WIDTH,
MAINSURFACE.HEIGHT,
0.0,
1.0
}

此函数变换的3D坐标的Z值为0;

/与之相反(但是又不完全相反)的是
D3DXVec3Unproject

是将目标SURFACE变到3D物理坐标
但是此时的物理坐标并不是以前那个对应的3D屋里坐标了
而是——

视截体近面或者远体面中的3D坐标的物理坐标---这句话的理解是

:所求 3DPOS= (3D世界坐标点与EYE(摄影机的点都是世界坐标点不受SET WORLD 影响)的连线    )与近或远视
截面(当然是世界坐标)的焦点 ,再然后转换到物理坐标(即为结果)

CSDN上那个家伙估计是
先得到的2D坐标然后一转成里近的面里而其近面为0;

(转)对D3DXVec3Project 和D3DXVec3UnProject的认识相关推荐

  1. 【超级大转载】常用的D3D变换相关函数

    D3DXVec3Length 函数 -------------------------------------------------------------------------------- 返 ...

最新文章

  1. jQuery之防止冒泡事件
  2. 520 钻石争霸赛 7-6 矩阵列平移(循环)
  3. 软件测试--缺陷报告
  4. Ubuntu 12.04(所有ubuntu发行版都适用)sudo免输入密码
  5. opencv打开本地文件.avi提示找不到xvidcore.dll
  6. 某高校校园网的规划与设计(课程设计)
  7. Spring AOP切面的执行顺序
  8. 免费试用一年微软云服务【图文并茂】
  9. JavaScript Window窗口对象
  10. Python判断坐标点在五环线以内
  11. 用Mailgun邮寄出去!
  12. 常用电子元器件介绍 齿轮规格的参数
  13. 解除百度网盘下载限速
  14. CCF论文列表(2022拟定)大更新!NAACL升B!ICLR继续陪跑...MICCAI空降B!PRCV空降C!
  15. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
  16. matlab 画图白边,matlab保存画框图像去白边
  17. 华为od机考真题-高矮个子排队,算法第九讲-高频真题解析 II
  18. 困死了。。。。。。。。。。。。。。。。
  19. Hbase思维导图之物理模型
  20. 【8.21模拟赛T2.7221】[USACO21OPEN] Portals G【kruskal】

热门文章

  1. ubuntu14安装tensorflow并测试
  2. margin-top/bottom(padding-top/bottom)百分比以祖级宽度计算
  3. [转] GCC 中的编译器堆栈保护技术
  4. Fedora10字体安装与美化
  5. 【SpringBoot】SpringBoot最精简的设置
  6. Adobe MasterCollection CS5 试用版下载链接
  7. windows应用迁移到linux下
  8. Python语言学习 (六)1.2
  9. UIMenuController,UIPasteboard:复制,粘贴详细解释
  10. RH413-Linux系统下umask测试