超大地图如何实现

比如30000*30000的地图如何实现,地图上的小花小草等物件数以万计,怎样做性能最好,我感觉用camera移动时仍旧会卡

一言难尽。这种问题。付费回答也是有可能。
首先国内你见过多少游戏是超大场景的。
技术方案复杂的项目基本被砍了。要么就成了分场景加载。走一段黑屏切场景每个场景都不太大。
rpg游戏相对地图大。用到二叉树什么之类的场景管理系统,再用个类卡马克卷轴去优化。
你要说性能最好的做法谁都不能打包票。无懈可击的方案因为平台差异尚且变得有懈可击。
也智能做到理论上效率最优。

但基本原理都没有变,
计算当前场景包含的所有物件。
判断哪些物件需要刷新。
刷新部分区域显示。(又分画家算法和非画家算法,基于可见节点的属于非画家算法)

如果在超大场景管理同时再加入分区域加载地图。(GTA5那样,无切场景,走一段下载下一段)
问题会变得何其复杂。就算知道怎么做也真的懒得打字说啊。

有一个问题。如果一张大图,被加载了,但是没有显示出来。那么它实际上消耗的内存和

显示出来内存有多大区别?

有区别。区别多大不知道。
webgl下。显示出来占的是显存。

如果图很大。超过屏幕很多很多。最好就拆了。拆成拼图。

我想也是。只是在H5中。图片资源是直接下载在内存中的吧。
就算没有加载。
那么超大地图的数据本身还是在内存中的?那么
分块加载在内存上来说没有区别吧。

如果场景npc较多,还会涉及aoi算法(灯塔、十字链表)。aera of intrest

有区别。用到的块载。用不到释放掉。
同GTA5。不可能同时载入整个世界的地图素材。

这个是本地资源。可以在用的时候从本地调用资源加载。
我提出的疑问是H5。数据从服务器加载到的应该是内存中。
不存在本地保存。


按网易游戏的Map文件构架进行设计就可以了,可以无限大. 基本就是动态生成释放和一些相关的压缩算法,在很久以前梦幻西游都可以流畅的运行,更别说现在了. 这个就是几万2X几万,地图还包含了mask,cell,girb等,直接按这种方式来进行设计可以达到你的要求

1赞

你可能想复杂了,我的场景东西比较多,但是用到的资源很少,我发现如果几万节点全部加入场景内,即使active为false,仍旧会很卡,所以我现在的做法是基于网格把节点移除和添加,至少在玩家静止时性能消耗很小

我做了一个大点场景,里面有小人,小花草树木,运行起来也是有点卡,场景也可以缩放大小,知道这个怎么加载么