zoukankan      html  css  js  c++  java
  • 用矩阵旋转相机

    modelMatOfCamera=inverse(veiwMat)

    newModelMatOfCamera=modelMatOfCamera*rotMat,这里注意rotMat要右乘modelMatOfCamera,因为我们想在相机的局部空间里旋转相机(即原地扭头),而不是想在世界空间旋转相机(让相机绕着世界原点转)。

    则可得新的视图矩阵为:

    newViewMat=inverse(newModelMatOfCamera)

    或者也可以计算新的up,eye和center:

    newUp=secondColOf(newModelMatOfCamera)

    newRight=firstColOf(newModelMatOfCamera)

    newDir=-thirdColOf(newModelMatOfCamera)

    newEyePos=oldEyePos,即eyePos保持不变

    newCenter=newEyePos+newDir

    这样就得到了newUp,newEyePos和newCenter

    ----

    注意,相机的viewMat即相机modelMat的逆矩阵。

    由相机的modelMat各列可直接提取出相机空间轴向量和相机位置坐标。

    由相机的viewMat各行可以提取出相机的空间轴向量(第四个元素要强制变为0),但是不能直接提取出相机的位置坐标。

    参考:http://user.qzone.qq.com/350479720/blog/1310061051

  • 相关阅读:
    bs4的学习
    mysqldb模块的简单用法
    起点中文网(主要是在目录下创建文件)
    怎么把列表转化为字符串
    GUI开发者桌面搜索文件工具
    用表格形式保存文档 xlwt
    如何解决编码有问题
    影魔
    龙与地下城
    不等关系
  • 原文地址:https://www.cnblogs.com/wantnon/p/4894863.html
Copyright © 2011-2022 走看看