3D游戏从入门到精通-31 32 33

当我们看到现实世界里,有很多山地。那么这种山地,在3D世界里又是怎么样显示出来的呢?要模拟现实中的山地,就需要研究它怎么样构成,然后采用各种方法创建出来。在游戏的世界里,对于地形的要求是不严谨的,只要看起来像山地,就行了,而不像其它地理系统,一定要精确到跟现实世界里山比例一样。因此,在这里创建的3D地形,都是近似地模拟出来,这样就节省了很多工作,加快地形的显示,提高游戏速度的流畅性。

这里介绍的山地地形,主要使用高度图来实现。它的原理是:先生成平面的网格,比如是4×4大小,那么它就有16个顶点。接着,就设置每个网格顶点的高度,也就是设置每个顶点的Y轴坐标值,随着Y轴的坐标值不同,就代表了高度不一样。如果Y轴的值是有规律地变化,那么显示出来的网格,就是山地的形状了,然后再加上各种不同的纹理,就可以显示高山、沙滩、雪山和盘地等等。

 山地网格1,如下图:

山地图形1,如下:

创建山地图形2,如下图:

3D游戏从入门到精通-32 

前面已经编译好OGRE库,现在编译Helloworld工程就很快了。当然,在这个程序里也是设置为Debug的方式编译的,这样才能使用前面的OGRE的调试方式的库文件。点一下编译运行按钮,很快就看到一个漂亮的OGRE LOGO呈现在你的眼前,如下图所示:

从这张美丽的画面里,看到一个古铜色的OGRE头像,在光源的照射下,闪亮着光泽,活灵活现的。左下角是一些重要信息,第一行是FPS的数,什么叫做FPS呢?或许你也会问这个问题,如果你还不懂,现在就给你讲一下。FPSFrame per second的缩写,就是每秒钟多少帧画面的意思。在视频或者动画里,衡量动画的流畅性,就是通过FPS来体现的。FPS值越大,表示动画流畅性越好。反之,越小的FPS值,说明动画不好,也就是说画面更新不及时,看到很卡住的样子。FPS值的大小,是跟电脑的性能,显示画面复杂程度有关。越好的CPUFPS值就越大。更多的内存,FPS值就越大。更好的显示卡,FPS值也变大。最好的渲染引擎也会导致FPS值变大的,也就是说,当渲染引擎变得非常有效率时,就可以要求的电脑配置越低。FPS值反而变成衡量OGRE引擎的性能了,如果OGRE非常高效,FPS值就越大。第二行是平均FPS值,第三行是最坏时FPS值,第四行是最好时的FPS值,第五行是三角形个数,这里是4546个三角形。

右下角是一个OGRELOGO图片显示。

 

到这里,就把这个Helloworld编译并运行了。那么它又是怎么样编写的呢?怎么样调用OGRE库的呢?

3D游戏从入门到精通-33 

大体运行流程如下:
1)  WinMain 函数:Windows程序入口。
2)  app.go() 函数:应用程序框架运行函数。
3)  ExampleApplication:: setup() 函数:在这里初始化和创建场境的工作。
4)  Root::startRendering() :开始渲染并进入消息循环。
5)  ExampleApplication:: destroyScene() :退出时删除所有分配的资源。
 
由这里可以看出,程序运行后,进行一系列创建和加载动作,然后调用渲染并进入消息循环,响应键盘和鼠标的消息,直到用户按退按钮。它们的关系如下图所示:
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值