当我们看到现实世界里,有很多山地。那么这种山地,在3D世界里又是怎么样显示出来的呢?要模拟现实中的山地,就需要研究它怎么样构成,然后采用各种方法创建出来。在游戏的世界里,对于地形的要求是不严谨的,只要看起来像山地,就行了,而不像其它地理系统,一定要精确到跟现实世界里山比例一样。因此,在这里创建的3D地形,都是近似地模拟出来,这样就节省了很多工作,加快地形的显示,提高游戏速度的流畅性。
这里介绍的山地地形,主要使用高度图来实现。它的原理是:先生成平面的网格,比如是4×4大小,那么它就有16个顶点。接着,就设置每个网格顶点的高度,也就是设置每个顶点的Y轴坐标值,随着Y轴的坐标值不同,就代表了高度不一样。如果Y轴的值是有规律地变化,那么显示出来的网格,就是山地的形状了,然后再加上各种不同的纹理,就可以显示高山、沙滩、雪山和盘地等等。
山地网格1,如下图:
山地图形1,如下:
创建山地图形2,如下图:
3D游戏从入门到精通-32
从这张美丽的画面里,看到一个古铜色的OGRE头像,在光源的照射下,闪亮着光泽,活灵活现的。左下角是一些重要信息,第一行是FPS的数,什么叫做FPS呢?或许你也会问这个问题,如果你还不懂,现在就给你讲一下。FPS是Frame per second的缩写,就是每秒钟多少帧画面的意思。在视频或者动画里,衡量动画的流畅性,就是通过FPS来体现的。FPS值越大,表示动画流畅性越好。反之,越小的FPS值,说明动画不好,也就是说画面更新不及时,看到很卡住的样子。FPS值的大小,是跟电脑的性能,显示画面复杂程度有关。越好的CPU,FPS值就越大。更多的内存,FPS值就越大。更好的显示卡,FPS值也变大。最好的渲染引擎也会导致FPS值变大的,也就是说,当渲染引擎变得非常有效率时,就可以要求的电脑配置越低。FPS值反而变成衡量OGRE引擎的性能了,如果OGRE非常高效,FPS值就越大。第二行是平均FPS值,第三行是最坏时FPS值,第四行是最好时的FPS值,第五行是三角形个数,这里是4546个三角形。
右下角是一个OGRE的LOGO图片显示。
到这里,就把这个Helloworld编译并运行了。那么它又是怎么样编写的呢?怎么样调用OGRE库的呢?
3D游戏从入门到精通-33
