我用的cocos2dx 3.4final版,在xcode里面进行开发。
我有个这样的场景,一个没有顶的房间,视角是从顶部俯视房间,房间大小为2200 x 2200,房间里有几个小人(房间和小人都是立方体风格,面数和顶数都很低,调试信息显示出来只有348 GL verts,5 GL call)。
我想要做成天天过马路那种风格。
现在的问题主要有两个:
1.帧率太低,我发现当我把光照加上,同时设置camera的位置让房间大小显示出来刚好和手机屏幕差不多一样大时,在ipad上帧率只有30了(模拟器上只有8)。
2.加了光照以后模拟器上的显示效果和真机上的显示效果有较大差异,主要是亮度上的差异。
关于第一个问题
把光照加上对性能有影响,这个我倒是能理解,加了光照毕竟多了不少计算,如果引擎图形处理这块优化做得不是很好的话出现这种情况也算正常。
如果去掉光照帧率又变回60,但是我发现不加光照的话3d对象表面的明暗体现不出来,所以还不能把光照关闭了。
于是我试着把Camera的位置设置得离房间比之前远一倍,这时候屏幕上显示出来的房间只有原来1/4大小,这种情况下帧率也变回到60了,我对3d技术不懂,不理解为什么同一个对象Camera离得近和离得远对帧率的影响会这么大,还盼大牛能指教。此外,虽然能通过把Camera调远来提高帧率,但这完全不现实啊,手机屏幕本身就那么小了,显示出来的东西再小点完全没法玩了。
如果觉得30的帧率也够的人那就啥也别说了,毕竟这么简单的场景,3d对象顶点数也这么少的情况下如果都不能满帧的话都不敢再往里面加东西了,最后做出来的东西也只能是demo了。
要如何才能做到让房间显示大小和屏幕一样大并且开启光照,帧率也能满帧呢?
关于第二个问题
我不知道是不是我建的模型的问题还是引擎自身的问题,我用的是blender软件进行建模的,我发现引擎自带的例子里Light map test里面的模型都是灰白色的,也不知道贴了图没有。