Part I 空气曲棍球 Chapter5 (5.2 Working with a Virtual Coordinate Space)

5.2 虚拟坐标系(Working with a Virtual Coordinate Space)

    为了适配屏幕旋转的情况,我们需要调整之前使用的坐标空间,如何调整呢?那就是不能直接使用规范化设备坐标而是需要调整会使用虚拟坐标空间。为了使用OpenGL能够正确的进行渲染,我们需要找一种把虚拟坐标空间转换到规范化坐标空间的方法。而为了使用我们的球台桌面的竖屏与横屏情况下都得到正确的显示,这种转换还需要考虑屏幕方向。

    我们需要做的就是一个正侧投影,在正侧投影规则下,无论多远或者多近所有的东西看起来都是同样的大小。为了更好的理解下侧投影,假设我们有一个火车轨道,下图是从轨道下上方看轨道时的样子:


    这里还有一种特殊的投影方式叫做等轴测投影(isometric projection),它也是一种正侧投影,只不过有了一个偏移角度。这种类型的投影可以用来创建一个3D视角,就是在游戏中看到的城市模拟一样,如下图所示:


5.2.1 坐标空间转换(From Virtual Coordinates Back to Normalized Device Coordinates)

    当我们使用正侧投影把虚拟坐标空间转换到规范化设备坐标空间时,我们相当于在我们的世界中定义了一个3D空间,所有在所定义3D空间里面的内容都会得到显示,所有在3D空间外面的都被裁剪掉。在下面的图示中我们可以看到一个立方体中的简单场景:


    当我们使用正侧投影把这个立方体投射到屏幕的时候,就会得到下图所示场景:

    我们可以通过使用正侧投影改变立方体空间大小,然后就可以在屏幕上看到更多或者更少的内容,我们也可以改变这个立方体的形状使得在不现屏幕方向下都能得到正确的显示。
    在我们使用正侧投影之前,需要先来复习下一些线性代数基础知识(点击进入下一章)。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值