(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)
什么是屏幕文字的正方向,通常情况下位于屏幕平面,文字方向从左向右,上方向指向屏幕上方。
对于Ogre三维情况来说,就需要考虑视口投影效果了。
要想理解清楚这个方向,我们首先需要先理解下三维图形在屏幕上的生成原理:
照像机的话,通过镜头,把镜头视角内的图像成形到屏幕上,对于镜头来说,可以理解是镜头发出的光或是物体发出的光被镜头捕捉到。
镜头看的方向中心点称为焦点,焦点物体的反射光射向了镜头,镜头视口范围内的所有物体,都把反射光射向了镜头,从而镜头捕捉头图像,显示到屏幕上。
我们可以把镜头理解为一个视觉球体的球心,周围的物体位于球面上。照相机显示的图像就镜头视角内的球面上的物体,延物体射向镜头的光线方向,投影到焦点所在平面,这也就生成了屏幕上的图形了。
这其中我们要注意到一个细节,延物体射向镜头的光线方向,这也就是为什么在屏幕上成像的时候,近大远小。也是为什么我们看到一条很直的公路的远处越来越窄。
理解了上面的文字之后,我们再考虑文字的正方向的话。
就能够认识到,如果把镜头理解为地球的球心的话,文字的正方向,类似于地球的纬度,文字的上方向类似于地球的经度。
镜头的上方向,与物体射向镜头的光线组了经线面,文字的正方向垂直于该面。(同时经纬线也是互相垂直的)。
这样得出的文字方向就是垂直于物体射向镜头的方向的。并且文字上方向也垂直于物体射向镜头的方向。
当然也有一些特例,如果镜头离我们非常远(例如太阳是镜头,地球是物体),或是物体位于焦点上时,正方向就是从左往右,上方向就是镜头的上方向了。
文字使用正方向的时候,我们会看到文字是平铺在屏幕上, 并且是从左向右平铺; 阅读起来最为方便。
相同的道理,如果是从上往下的文字,也是类似的原理:
有了文字正方向的定义之后,一些相关文字调节就有了依据。Ogre上的文字如果需要动态调整时,可以以正方向作为参考进行调整即可。