zoukankan      html  css  js  c++  java
  • 左手坐标系和右手坐标系

      这篇算作是第一篇文章,以后觉得闲了就写点自己最近所想的也蛮好。

      左右手坐标系是图形学中比较纠结的一件事,D3D中左右手坐标系两套API都有,OpenGL中是右手坐标系,在shader中是向量右乘的,即坐标变换的时候,是M·v,此时translation向量在矩阵M的最后一列,这个和OpenGL的列存储没啥关系,看到有的文章写是因为OpenGL列存所以右乘会快,我觉得这个说的不太对。左手坐标系对应着的是 X x Y = Z, Y x Z = X,  是轮换的,右手坐标系与之相反,是Y x X = Z,直接做好右手坐标系,再将X的位置反转一下也能够得到左手坐标系。

      在视口坐标中,我们其实是处在左手坐标系的。可以这样考虑这个事情,右手部分对应着的是X轴正方向,左手部分对应着的是X轴负方向,看向的是Z轴正方向,天空的方向是Y轴正方向,这是一个左手坐标系。而在OpenGL中,对应着的API使用的都是右手坐标系,如果自己管理变换矩阵的话,在视点坐标变换的时候需要变到左手坐标系。很多地方都不讲这个问题,我觉得这对于我来说很困惑。在变换的时候,统一按照右手坐标系去考虑就好了,也就是在世界坐标和模型坐标的时候使用的右手坐标系,这个有个很好玩的事情就是,右手坐标系的正,在左手坐标系看来也是正的。

      读完规定自己读好的书之后就离开这里,希望能够做好手头的事情,一点点进步吧~

  • 相关阅读:
    main方法为什么一定是Public static void
    DOS下编译运行小应用程序
    HelloWorld
    MySQL INFORMATION_SCHEMA 使用(转)
    MySQL int(M)的意义(转)
    Mysql 字符串类型及大小写
    使用Zookeeper 实现选主从或者分布式锁
    记一次CountDownLatch引发的问题
    Mysql恢复部分数据
    记一次Java内存性能分析
  • 原文地址:https://www.cnblogs.com/EpisodeXI/p/4041715.html
Copyright © 2011-2022 走看看