清除视图矩阵的旋转分量

时间:2017-03-06 19:54:38

标签: opengl matrix shader

我有一个放在鼠标光线上的物体。我希望将对象对准摄像机,清除旋转,同时保存摄像机的其他组件作为比例和平移。当然,我可以在没有基于鼠标位置的任何矩阵变换的情况下制作它,但我需要3d对象。什么是最好的方法呢? 我的计算MVP发送到着色器,我猜我需要准备没有旋转组件的View矩阵。类似的东西(在stackoverflow上找到):

    glm::mat4 newView = view;
    float d = sqrt((newView [0][0] * newView [0][0]) + (newView [1][0] * newView [1][0]) + (newView [2][0] * newView [2][0]));
    newView [0][0] = d;
    newView [0][1] = 0;
    newView [0][2] = 0;
    newView [0][3] = 0;
    newView [1][0] = 0;
    newView [1][1] = d;
    newView [1][2] = 0;
    newView [1][3] = 0;
    newView [2][0] = 0;
    newView [2][1] = 0;
    newView [2][2] = d;
    newView [2][3] = 0;

这是对的吗?这是出于我的目的的最佳方式吗?谢谢!

0 个答案:

没有答案