Unity 场景分页插件 World Streamer 支持无限大地图的解决方案(二)

简介:
Terrain Streaming
可以用WorldCreator创建Tile地形,然后用WorldStreamer实现分块地图。比如10000*10000(16平方公里) 的地形,需要1000*1000的100个地块。如果每次加载9个格子,那么同时载入的地块大小为3000*3000大小——比一次加载100000*10000要省掉 90%的数据——如果直接加载10000*10000估计Unity要跪了。似乎也可以500*500,加载25个地块(保证1000左右的视野),总体数量要更小一些,但是地图分块却更多了(400个)。
 
(一)基础设置
如果想要分页读取Terrain,需要先把大块Terrain处理成小块,我使用的是WorldCreator Pro(189美金,巨贵无比)可以直接搞定这一步。
下面就需要思考了:
(1)不使用MeshTerrain作为低模LOD,那么推荐3*3地表块,每个地表块的Size应该比FOV的最远距离高个10%左右,以尽量使玩家不会看到地形加载的过程。
(2)使用Ring模式和低模LOG,可以使用较多的Load Range。
(3)纯MeshTerrain,通常用于移动游戏。
 
接下来的例子中我设置了一个6*6*500*500的地图分块,每个分块是一个500*500的Unity Terrain
 
 
注意每个分块的位置,应该是500的正数倍。
 
Streamer设置:
通常Terrain作为Major Streamer。如果还需要模型Terrain,那么其将设置为Minor Streamer,因为Major只能有一个。
把指定的SceneCollection Prefab赋值给Streamer,就完成了Streamer与Scene Clips之间的联动。
 
如果使用Unity Terrain,需要把Terrain Neighbour脚本添加到MajorStreamer对象,并关联他们。
 
(二)使用RingStreaming 和 MeshTerrain 作为Terrain的LOD
首先你需要一个插件叫做Terrain To Mesh(https://www.assetstore.unity3d.com/cn/#!/content/47276)有钱的请支持正版,没钱的可以去淘宝买个盗版……
这个后期效率更不上的时候,可以搞一搞:).前期先不弄了。
这段官方说了一堆废话,其实关键就是
MajorStreamer,不设置Ring Streamer,读取范围是 0~N
MinorStreamer,设置RingSteamer,外圈读取范围是0~M(M>N),内圈起始范围设置为N+1,确保外圈实际范围是N+1~M。
也就是外圈低模和内圈高模,加起来是完整的,需要读取的地块。
 
(三)UnityTerrain优化议题
使用RingStreaming和低模Terrain,烘焙好的树木
看不见的Terrain Disable掉(比如背后的)可以使用TerrainCullingSystem
使用优化的树木管理工具:Critias Tree System
如果TextureStreaming出现问题,可以去设置"Async Upload Time Slice" 和 "Async Upload Buffer Size"

本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/p/8287235.html如需转载请自行联系原作者

jiahuafu
相关文章
|
定位技术 图形学
|
4月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
4月前
|
图形学
Unity重置场景
Unity重置场景
|
7月前
|
编解码 开发工具 图形学
Unity环境下RTMP推流+RTMP播放低延迟解决方案
在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总,权当抛砖引玉。
443 0
|
7月前
|
编解码 监控 vr&ar
Unity3D下如何采集camera场景数据并推送RTMP服务?
Unity3D是非常流行的游戏开发引擎,可以创建各种类型的3D和2D游戏或其他互动应用程序。常见使用场景如下:
|
7月前
|
数据采集 vr&ar 图形学
Windows平台Unity Camera场景实现轻量级RTSP服务和RTMP推送
随着VR技术在医疗、军事、农业、学校、景区、消防、公共安全、研学机构、展厅展馆,商场等场所普及,开发者对Unity平台下的直播体验提出了更高的要求。
|
人工智能 图形学
Unity Rain Ai 插件的使用入门(三)
Unity Rain Ai 插件的使用入门
183 0
Unity Rain Ai 插件的使用入门(三)
|
人工智能 图形学
Unity Rain Ai 插件的使用入门(二)
Unity Rain Ai 插件的使用入门
93 0
Unity Rain Ai 插件的使用入门(二)
|
人工智能 图形学
Unity Rain Ai 插件的使用入门(一)
Unity Rain Ai 插件的使用入门
534 1
Unity Rain Ai 插件的使用入门(一)
|
4月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
48 0