zoukankan      html  css  js  c++  java
  • DirectX 3d 取景变换

    在世界坐标系中,几何体和摄像机都是相对于世界坐标系定义的。但是当摄像机的位置和朝向任意时,投影变换及其它类型的变的就略显困难或效率不高。为了简化运算,我们将摄像机变的至世界坐标系原点,并将其旋转,使摄像机的光轴与世界坐标系z轴正方向一致。同时,世界空间中的所有几何几都随着摄像机一同进行变换,以保证摄像机视声恒定。这种变换称之为取景变换(view space transformation),我们称变换后的几何体位于观察坐标系中(view space)。

    假定摄像机位于(5,3,-10),其观察点为世界坐标系的原点(0,0,0),我们可以这样创建取景变换矩阵。

    D3DXVECTOR3 position( 5.0f,3.0f,-10.0f);//摄像机在世界坐系中的位置
            D3DXVECTOR3 target(0.0f, 0.0f, 0.0f); //被观察点
            D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); //世界坐标系中向上的方向向量
            D3DXMATRIX V;
            D3DXMatrixLookAtLH(&V, &position, &target, &up);//得到取景变的矩阵,即观察矩阵

    取景变换

    Device->SetTransform(D3DTS_VIEW, &V); //取景变换
  • 相关阅读:
    LeetCode-Minimum Path Sum
    LeetCode-Validate Binary Search Tree
    LeetCode-Recover Binary Search Tree
    LeetCode-Valid Parentheses
    LeetCode-Generate Parentheses
    LeetCode-4Sum
    BZOJ 2295: [POJ Challenge]我爱你啊
    BZOJ 2725: [Violet 6]故乡的梦
    BZOJ 3672: [Noi2014]购票
    BZOJ 4327:[JSOI2012]玄武密码
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/4427689.html
Copyright © 2011-2022 走看看