简介
这篇教程主要介绍如何使用灯光对象以及如何产生阴影。我们还会稍微了解一下摄像机的用法。
从这里开始
在上一教程的基础上,将文件TutorialApplication.cpp和TutorialApplication.h替换为如下两个文件:
BasicTutorial2.h
BasicTutorial2.cpp
摄像机
摄像机是用来观察我们所创建的场景。摄像机是一个特殊的物体,他的工作方式有点类似于场景节点。
摄像机对象有方法:setPosition, yaw,roll和pitch,并且他可以绑定到任何场景节点。就像场景节点一样,摄像机的位置跟父节点有关(就好像尊重长辈一样)。对所有的移动和旋转来说,你可以把摄像机考虑成场景节点。
对于Ogre摄像机来说,有一点跟你想象不一样的是同一个时间内你只能使用一台摄像机(当前)。我们不能这么干:
创建一个摄像机观察场景中的一部分,而在创建第二个摄像机观察场景中的另一部分,就好比你的眼睛同时只能看你前方的东西一样。
如何创建一个摄像机
我们重载了基类BassApplication的createCamera方法,自己来实现摄像机的创建,代码如下:
当你创建完一个摄像机,可以通过其名字取得摄像机对象的指针:getCamera("PlayerCam")
然后我们设置摄像机的位置和朝向,我们将设置摄像机朝向坐标原点,所以我们需要设置一个恰当的Z轴距离。添加下面的代码到createCamera:
lookAt方法非常灵活,你能够设置它面向任何你想要的角度。场景节点也有同样的方法,能够通过此方法在任何情况下,很容易的达到你想要的方向。
最后,设置一个5单位距离的近距离裁剪。通过设置摄像机的裁剪距离,来规定该距离内的事物是你看不到的。设置近距离裁剪后,你能够在离实体很近的时候,很容易的透过实体看到场景。还有一种很微小的情况就是,当你和某个物体很近时,这个物体将填满你的整个视野。同样,你也可以设置远距离裁剪。这个