• (转)对D3DXVec3Project 和D3DXVec3UnProject的认识


    一下是我的学习笔记:

    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;
  • 相关阅读:
    NFC性价比高频读卡器首选方案:FM17550
    关于ESP8266和ESP8285的对比
    有没有比NRF51822更好的智能穿戴蓝牙方案
    zigbee CC2530首选方案模组:TZU06A1
    PAN3501兼容AS3933-BTST
    NRF51822和NRF52832的主要区别
    集成模拟温度传感器低成本2.4G CC2500RGPR 中文手册
    USB2.0主机控制器 UPD720114 简单详解
    存储器HK1225-7EQ 使用说明书资料
    爬虫 + 数据
  • 原文地址:https://www.cnblogs.com/lancidie/p/1845862.html
Copyright © 2020-2023  润新知